如果已知地面坐标,如何获得 3D 坐标?

问题描述

我在 FIFA 21 游戏中做一个与图像处理和计算机视觉相关的项目。通过线检测,我找到了禁区和守门员区域的角点。通过制作坐标系,我已经能够使用以下几行将游戏转换为鸟瞰图(见左图):

matrix = cv2.getPerspectiveTransform(pt1,pt2)
new_img = cv2.warpPerspective(img,matrix,(cols,rows)) 

这里 pt1 是我希望坐标在鸟瞰图中的点,pt2 是从正常比赛场地收集的点。通过屏幕底部小地图中球的坐标,我能够找到球在地面上的位置,而不是像图像中发生的那样通过空气。在下面左边的图片中,您可以看到空中的球如何投影到鸟瞰图上,以及如果球在地面上会在哪里。

Ball in FIFA projected on bird's eye view and compared with ball on the ground

我想要实现的是知道此时球的高度,如图所示。还可以预测球在整个场地上的位置,如果它与空中的球进行比较(如图像右侧的黑色所示)。因此,我的问题是如何通过变换等获得矩阵中的球的高度(z 坐标)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)