使用OpenCV的差异视差图

时间:2018-04-23 01:05:39

标签: python opencv computer-vision stereo-3d disparity-mapping

我正在尝试使用python中的openCV3计算视差图,但结果并不令人满意。我确保校准和校正正确完成:

rectification result

我在Matlab中使用这些校正后的图像尝试了差异函数,结果非常好。但是,opencv输出看起来像梵高:

disparity map

这是与差异相关的python代码:

block_matcher = cv2.StereoBM_create(numDisparities=16, blockSize=15)
disp = block_matcher.compute(rectified_l, rectified_r)

有趣的是,一系列的差异是[-16,240],但是,我预计它会在[0,16]中,因为我将numDisparities设置为16.我是否误解了numDisparities的概念?我尝试改变numDisparities和blockSize,但没有得到任何有意义的改进。

如果您对正在发生的事情有所了解,请告诉我。

1 个答案:

答案 0 :(得分:0)

我弄清楚发生了什么以及为什么Matlab的表现要好得多。 我的原始帖子中的视差图是使用openCV的StereoBM方法获得的,而Matlab使用StereoSGBM。在我切换到StereoSGBM后,结果看起来更好,与我从Matlab获得的结果相同。