笔趣阁 > 都市小说 > 重生学神有系统 > 第330章 小孔成像和PNP问题

第330章 小孔成像和PNP问题(2 / 2)

江寒想了想,又补充说:“口味随便,红烧、清蒸无所谓……哦,对了,让他们把点餐的钱加到我账单里。”

靳雪雯一摆手:“不用,你教我改程序,我还不知道怎么感谢呢!

再说咱们战队刚刚成立,本队长请吃个宵夜,也是应该的吧?”

江寒呵呵一笑:“小蚊子啊,你可能不太清楚,这种地方,一条红极参只怕得7、8百块。”

靳雪雯嘻嘻一笑:“没事,让爸爸买单就行了,他赚钱就是给我和妈妈花的嘛。”

江寒:“……”

有点无言以对的感觉。

眼前这一只,莫非就是传说中的富萝莉?

毕竟有句话说得好,十个萝莉九个富,还有一个……

靳雪雯很快安排完宵夜,然后继续看江寒编程。

江寒接下来就开始编写目标测算模块。

靳雪雯原本使用的办法,是直接用像素坐标来计算旋转角度。

这样做倒也不是一定不行,但比较麻烦,而且效果也不会太好。

这是因为像素坐标差与角度之间,并不是线性关系,必须根据像素的坐标,随时矫正换算比例,才能得到一个不很精确的近似值。

江寒思考了一下,根据“小孔成像”的原理,设计了一个简单而又巧妙的算法,通过像素坐标算出了正确的转角。

想要从图像数据中得到物理世界的坐标,需要先标定摄像头,从而得到摄像头的内参。

这一步可以使用OpenCV中的标定工具来做。

标定完摄像头后,就能得到摄像头的内参矩阵和畸变参数。

根据这两组参数,对像素值的坐标进行矫正,然后就可以通过反三角函数,来计算出需要的角度了。

写完算法之后,江寒又设计了一个小实验,对其进行了验证。

实验结果表明,这个算法完全OK,准确率和速度都优于靳雪雯原来的算法。

但这种算法也有一个相当明显的缺陷,由于缺失了深度信息,因此无法对坐标系进行变换操作。

这样一来,就只能得到相对于摄像头中心的转角……

那么如何解决深度的问题,得到三维坐标呢?

江寒又设计了一种算法,通过求解PNP问题,来得到敌我双方在真实空间中的坐标偏移。

PNP问题,就是PerspectiveN-PointProblem。

江寒对这个算法不是十分熟悉,只知道可以用来处理空间定位问题。

所以,他先去网上找了几篇文献,仔细浏览,理解了原理之后,才开始编写自己的代码。

首先标定摄像头,得到相机的内参矩阵和畸变参数,然后测量物体的尺寸,得到物体在世界坐标系中的坐标。

接下来,从图像中得到机体的像素坐标,然后通过SolvePnP函数计算出平移向量,对坐标进行平移操作。

最后再修正一下y轴和z轴的坐标,就可以通过反三角函数,计算出所需要的角度值了。

这种算法可以得到物体在三维空间中的坐标,缺点是需要计算四个点,而第一种算法,利用小孔成像的原理,只需要计算一个点就够了。

两种办法各有优缺点,可以分情况,灵活运用。

当目标距离十分遥远时,就用“小孔成像法”计算角度;距离合适的时候,则不妨切换成PNP法……

这样一来,就能兼顾效率与精准了。

破费!

最后还有一件事,那就是目标动作预测。

这是一个相当困难的问题,但也是一个非常重要的问题。

预测做得好不好,直接决定了子弹的命中率。

如果不做预测,当敌方车辆不断移动时,瞄准点将总是滞后于敌机的实际位置。

这当然是不可接受的。

所以必须做,而且还要尽可能地做到完美!

最新小说: 狂龙下山:我是国手仙医 徒儿你无敌了,快下山去吧 末世:求生游戏,我跟丧尸学斩仙 饥荒年,我囤货娇养了古代大将军 狱出邪龙 真千金她一抬眸,海城大佬齐低头 九阳绝脉:下山后我无敌了 无敌纨绔,归来祸乱天下! 我入狱五年,出狱已无敌 联姻多年后,她重生了