OpenCV - `reprojectImageTo3D()` 中的度量表示
OpenCV - Metric representation in `reprojectImageTo3D()`
在我的左摄像头、右摄像头和立体校准上;我已经指出了正方形的大小
0.025 (25 millimeters)
所以我使用 reprojectImageTo3D(disp, Q)
获得 3D 点
disp = stereo.compute(dstL, dstR).astype(np.float32) / 16.0
disp = abs(disp-min_disp)/num_disp
我从 stereoRectify
得到了 Q
我拍摄了一个距离立体相机 2.5 - 3 英尺的盒子的照片,并检索了位于其上的点的 xyz
坐标。它的 Z
值为 140.8764
我该如何解释?
我的Q
看起来像这样
|1, 0, 0, -454.05216408|
|0, 1, 0, -231.55072975|
|0, 0, 0, 816.20826814 |
|0, 0, 13.79730561, -0 |
在所有相应的校准函数中使用一致的单位(在本例中为米),那么 cv::reprojectImageTo3D
的输出应该具有相似的单位(这里又是米)。
在Q
中,(3,2)处的值是相机基线值的倒数(这里0.0725 m
是有道理的)。 (0,3) 和 (1,3) 处的值是主点的 xy-coordinates(大致在图像的中间;再次有意义)并且 (2,3) 是相对焦距(相对于图片宽度)。
不要扩大差距。所以评论这一行:
#disp = abs(disp-min_disp)/num_disp
在我的左摄像头、右摄像头和立体校准上;我已经指出了正方形的大小
0.025 (25 millimeters)
所以我使用 reprojectImageTo3D(disp, Q)
disp = stereo.compute(dstL, dstR).astype(np.float32) / 16.0
disp = abs(disp-min_disp)/num_disp
我从 stereoRectify
我拍摄了一个距离立体相机 2.5 - 3 英尺的盒子的照片,并检索了位于其上的点的 xyz
坐标。它的 Z
值为 140.8764
我该如何解释?
我的Q
看起来像这样
|1, 0, 0, -454.05216408|
|0, 1, 0, -231.55072975|
|0, 0, 0, 816.20826814 |
|0, 0, 13.79730561, -0 |
在所有相应的校准函数中使用一致的单位(在本例中为米),那么 cv::reprojectImageTo3D
的输出应该具有相似的单位(这里又是米)。
在Q
中,(3,2)处的值是相机基线值的倒数(这里0.0725 m
是有道理的)。 (0,3) 和 (1,3) 处的值是主点的 xy-coordinates(大致在图像的中间;再次有意义)并且 (2,3) 是相对焦距(相对于图片宽度)。
不要扩大差距。所以评论这一行:
#disp = abs(disp-min_disp)/num_disp