use*_*732 5 3d computer-vision triangulation 3d-reconstruction
我正在进行三维重建.现在,当我考虑一对图像.我有一套相应的要点.我有我的相机细节.例如,我有焦点细节,旋转和平移矩阵(4*4).我想在3D(三角测量)中投射我的观点.因此,只要我通过因子代数就知道它非常简单.但我仍然需要清楚地理解它.有没有人知道如何遵循这个?我正在使用matlab,所以我需要实现它!我可能再次过于宽泛或其他什么.但请指导我!
您需要根据已知的相机属性计算相机矩阵;这是一个缩放投影矩阵,它将 3D 均匀点映射到 2D 像素坐标上。(请注意,如果您想要良好的精度,您还需要测量并系统地纠正相机的镜头畸变,但这是二阶细节。)
然后,将相机矩阵与姿势矩阵(您提到的 4x4 旋转/平移矩阵)相乘,得到一个矩阵(总计T),将所选 3D 坐标系中的点投影到相机的(校正的)像素坐标中:
pixel vector Q.x = T * point P.x
Q.y P.y
Q.z P.z
Q.w 1
pixel coordinates = (Q.x/Q.w, Q.y/Q.w)
"pixel depth" = Q.z/Q.w
Run Code Online (Sandbox Code Playgroud)
您可以反转该矩阵,并通过选择两个深度来使用它将像素坐标投影到 3D 射线中:一个深度位于相机位置,另一个深度不位于相机位置(最好选择单位深度或无穷远点)。您不能期望光线完全相交,但您可以根据两条相应光线最接近的位置获得最佳拟合位置;更一般地,您可以将任意数量的射线的交集视为最小二乘问题(理想情况下,以每条射线的预期误差为条件)。