我有一对匹配的2D特征,从校正的立体图像中提取。使用cvPerspectiveTransform函数在OpenCV中,我试图重建这些特征的三维。结果与真实世界中的实际对象维数不一致。我意识到Matlab校准工具箱中有一个功能,可以将二维立体特征转换为三维点云。然而,这些特征是从原始图像中提升出来的。
如果我想处理校正后的图像,是否可以根据二维特征位置和视差信息重建三维位置。
发布于 2012-11-21 08:11:02
如果您知道两个摄像机的焦距(f)和基线宽度(b、投影轴的距离)以及校正立体图像对中的视差(d) ,则可以使用以下公式计算距离(Z):
Z = f*(b/d);这是根据下列方程式得出的:
x_l = f*(X/Z); // projecting a 3D point onto the left image
x_r = f*((X+b)/Z); // projecting the same 3D point onto the right image
d = x_r - x_l = f * (b/Z); // calculating the disparity求解Z的最后一个方程应得到上述公式。
https://stackoverflow.com/questions/13488711
复制相似问题