使用cv :: StereoBM进行差异计算的CvStereoBMState文档

Sim*_*ann 10 opencv disparity-mapping

在OpenCV文档中没有充分解释Konolige的块匹配算法的应用.CvStereoBMState的参数影响由cv :: StereoBM计算的差异的准确性.但是,没有记录这些参数.我将在下面列出这些参数并描述,我理解的内容.也许有人可以添加参数的描述,这些都不清楚.

  • preFilterType:确定在计算差异之前在图像上应用哪个滤镜.可以是CV_STEREO_BM_XSOBEL(Sobel过滤器)或CV_STEREO_BM_NORMALIZED_RESPONSE(可能是差异表示强度???)
  • preFilterSize:预过滤器的窗口大小(宽度=窗口高度,负值)
  • preFilterCap:将输出剪辑为[-preFilterCap,preFilterCap].间隔之外的值会发生什么变化?
  • SADWindowSize:左侧和右侧图像中比较窗口的大小,其中计算绝对差值的总和以找到相应的像素.
  • minDisparity:最小的差异,考虑在内.如果可能存在负差异,则默认值为零,应设置为负值(取决于摄像机视图之间的角度和测量对象与摄像机的距离).
  • numberOfDisparities:视差搜索范围[minDisparity,minDisparity + numberOfDisparities].
  • textureThreshold:仅在纹理大于(或至少等于?)此阈值的位置计算视差.如何定义纹理??? 周围窗口的差异???
  • uniquenessRatio:引自calib3d.hpp:" 对于搜索范围内的任何d!= d +/- 1,仅接受计算的差异d*,如果SAD(d)> = SAD(d*)(1 + uniquenessRatio / 100.). "
  • speckleRange:不确定.
  • trySmallerWindows:???
  • roi1,roi2:仅计算这些区域的差异??? 不确定.
  • speckleWindowSize:不确定.
  • disp12MaxDiff:不确定,但是在calib3d.hpp中的注释表示,执行了左右检查.猜测:像素从左图像到右图像匹配,从右图像匹配到左图像.如果原始左像素和后匹配像素之间的距离小于disp12MaxDiff,则差异仅有效.

小智 3

SpeckleWindowSize 和 SpeckleRange 是函数 cv::filterSpeckles 的参数。看看 OpenCV 的文档。cv::filterSpeckles 用于对视差图进行后处理。它用无效的视差值(短整型 -16 或浮点 -1.f)替换尺寸小于或等于 speckleWindowSize(形成斑点的像素数)的类似视差(两个相邻值的差异不超过 speckleRange)的斑点。 )。