我正在使用openCV开发一个对象跟踪应用程序。我想将我的像素坐标转换为世界坐标,以获得更有意义的信息。我读过很多关于计算透视变换矩阵的文章,我也知道cv2.solvePnP。但我觉得我的情况应该是特别的,因为我在田径跑道上跟踪一个跑步者,跑道与摄像机的z轴垂直。我将设置摄像头以确保这一点。
如果我只选择跑道边缘上的两个点,我可以计算出在该特定高度(地面高度)和距相机的距离(即沿该线)的像素到世界坐标的线性转换。然后我推断跑步者将在一条与跑道平行的直线上跑步,该直线的高度和与相机的距离略有不同,但这些直线在图像中应该仍然是平行的,因为它们都将与相机的z轴正交。有了所有这些限制,我觉得我不应该需要正常的点数来跟踪特定轴上的跑步者。我的直觉告诉我,2-3应该足够了。有人能帮我弄清楚这里的方法吗?我是不是完全偏离正轨了?由于高度和到相机的距离基本上都是固定的,我不应该使用更小的通信集吗?
谢谢,比尔
发布于 2016-02-22 13:33:57
所以,我想我自己已经回答了这个问题。确实,在以下假设下,只需要两个对应点。
假设:
使用与地平面平行的X轴和Y轴设置
方法:
,
我的测试实现工作得很好。当然,它对提供的两个对应点的准确性很敏感,但这是给定的。
https://stackoverflow.com/questions/35543447
复制相似问题