我有一组三维点和一些带有这些点投影的图像。我还有相机的焦距和带投影的图像的主要点(由之前完成的相机校准产生)。
根据这些参数,有没有办法找到三维点和图像投影之间的自动对应关系?我查看了一些OpenCV文档,但直到现在我才发现任何合适的内容。我正在寻找一种能够自动标记投影的方法,以及它们与三维点之间的对应关系。
答案 0 :(得分:2)
问题不是很明确,但我想你的意思是说你有相机的内在校准,但不是它对场景的位置和态度(“外在的”)部分校准)。
如果只有一张图像,这个问题对于一般的三维点云没有独特的解决方案:只要注意如果沿着光线将三维点移动到摄像机中的任意位置,图像就不会改变。
如果有一个或多个图像,您就知道关于3D点云的所有信息(例如,这些点属于已知形状和大小的对象,并且位于其上的已知位置),并且您已将它们与其图像匹配,那么这是一个标准的“相机切除”问题:你只需要解决相机外部参数,使3D点投射到他们的图像上。
如果您有多个图像,并且在相机移动时您知道场景是静态的,并且您可以在每个相机位置匹配“足够”的3D点到其图像,则可以解决相机姿势的扩展问题。你可能想从David Nister和/或Henrik Stewenius关于校准相机求解器的论文开始,然后研究“束调整”。
如果你真的想要了解这个(广大的)主题,Zisserman和Hartley的book就像任何一个一样好。有关代码,请查看libmv,vxl和ceres捆绑包调整器。