gpt4 book ai didi

opencv - 使用 cv::StereoBM 进行视差计算的 CvStereoBMState 文档

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:14 26 4
gpt4 key购买 nike

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

  • preFilterType:确定在计算差异之前对图像应用哪个过滤器。可以是 CV_STEREO_BM_XSOBEL(Sobel 滤波器)或 CV_STEREO_BM_NORMALIZED_RESPONSE(可能与平均强度不同???)
  • preFilterSize:前置过滤器的窗口大小(宽度=窗口高度,负值)
  • preFilterCap:将输出剪辑到 [-preFilterCap,preFilterCap]。区间外的值会怎样?
  • SADWindowSize:左图和右图比较窗口的大小,计算绝对差之和以找到对应的像素。
  • minDisparity:考虑的最小差异。默认为零,如果可能出现负差异,则应设置为负值(取决于相机 View 之间的角度和被测对象与相机的距离)。
  • numberOfDisparities:视差搜索范围 [minDisparity, minDisparity+numberOfDisparities]。
  • textureThreshold:仅在纹理大于(或至少等于?)该阈值的位置计算视差。纹理是如何定义的???周围窗口的方差???
  • uniquenessRatio:引用自 calib3d.hpp:“仅当 SAD(d) >= SAD(d*)(1 + uniquenessRatio/100.) 对于任何 d != d+/-1 在搜索范围内。”
  • 散斑范围:不确定。
  • trySmallerWindows:???
  • roi1, roi2:只计算这些区域的差异???不确定。
  • speckleWindowSize:不确定。
  • disp12MaxDiff:不确定,但 calib3d.hpp 中的评论说,执行了左右检查。猜测:像素从左图匹配到右图,从右图回到左图。仅当原始左像素与反向匹配像素之间的距离小于 disp12MaxDiff 时,差异才有效。

最佳答案

speckleWindowSize 和 speckleRange 是函数 cv::filterSpeckles 的参数。看看 OpenCV 的 documentation .cv::filterSpeckles 用于后处理视差图。它用无效视差值(short -16 或 float -1.f)替换大小小于或等于 speckleWindowSize(形成 blob 的像素数)的相似视差(两个相邻值的差不超过 speckleRange)的 Blob ).

关于opencv - 使用 cv::StereoBM 进行视差计算的 CvStereoBMState 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22630356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com