用于在opencv3上进行视差映射的cv2.StereoSGBM_create()和cv2.StereoBM_create()函数之间有什么区别?

时间:2018-08-09 02:41:36

标签: python c++ opencv opencv3.0 disparity-mapping

我试图了解opencv的差异映射功能,我遇到了两种方法cv2.StereoSGBM_create和cv2.StereoBM_create我不太了解它们之间的区别。

此外,numDisparities或setSpeckleRange等函数的属性是什么

1 个答案:

答案 0 :(得分:1)

所有自变量的定义在文档页面here

的底部给出。

在块匹配或cv2.StereoBM_create()中,通过比较每个像素“块”的绝对差之和(SAD)来计算视差。在半全局块匹配中,cv2.StereoSGBM_create()会在相邻块上施加相似的视差。这创建了更完整的视差图,但是在计算上更加昂贵。

讨论'block matching'

的论文

讨论'semi-global block matching'

的论文