我有一个立体校准相机系统校准使用OpenCV和Python。我试图用它来计算图像点的三维位置。我收集了内禀矩阵和外禀矩阵,以及E、F、R和T矩阵。我对如何将二维图像点三角化为三维对象点感到困惑。我读过下面的文章,但是我对这个过程(In a calibrated stereo-vision rig, how does one obtain the "camera matrices" needed for implementing a 3D triangulation algorithm?)感到困惑。有人能解释一下如何从二维到三维吗?通过阅读,我觉得基本矩阵(F)很重要,但我还没有找到一个清晰的方法将其与投影矩阵(P)联系起来。有人能带我走过这个过程吗?
我很感谢你能帮我。
如果你校准了立体相机,你应该有每台相机的内部函数K1,K2,以及从第一台到第二台相机的旋转R12和平移t12。由此,可以按如下方式形成相机投影矩阵P1和P2:
这里,I3是3x3恒等矩阵,符号[R | t]表示水平叠加R和t。
然后,您可以使用函数
triangulatePoints
(documentation),它从两个相机矩阵实现稀疏立体三角剖分。如果您想要稠密三角剖分或深度映射估计,有几个函数可以实现。首先需要使用
stereoRectify
(documentation)校正这两个图像,然后执行立体匹配,例如使用StereoBM
(documentation)。相关问题 更多 >
编程相关推荐