使用StereoBM测量绝对距离

时间:2018-03-23 15:38:04

标签: python opencv stereoscopy

我正在使用此代码来计算两个图像之间的差异:

l1 = cv2.cvtColor(imgL, cv2.COLOR_BGR2GRAY)
l2 = cv2.cvtColor(imgR, cv2.COLOR_BGR2GRAY)

stereo = cv2.StereoBM_create(numDisparities=128, blockSize=15)    
result = stereo.compute(l1, l2)

这种方法很好,但两幅图像的最大差异(无论多大)总是在灰度中显示为白色像素,因此灰度似乎是两幅图像中的相对比例。

是否有可能获得绝对差异,所以我可以测量立体图像的绝对距离?

1 个答案:

答案 0 :(得分:1)

如果你想要的是获得到场景的真实距离,你可以看一下OpenCV样本(stereo_match.pystereo_match.cpp)。

您需要的是从stereoRectify获得的4x4 Q矩阵,它是差异到深度的映射矩阵。

然后可以使用

reprojectImageTo3D将视差图转换为3D地图。