Python cv.StereoSGBM_create方法参数与用法详解

这篇具有很好参考价值的文章主要介绍了Python cv.StereoSGBM_create方法参数与用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作用

创建StereoSGBM(semi-global block matching)对象。该对象实现了半全局匹配算法。

原型

cv.StereoSGBM_create([, minDisparity[, numDisparities[, blockSize[, P1[, P2[, disp12MaxDiff[, preFilterCap[, uniquenessRatio[, speckleWindowSize[, speckleRange[, mode]]]]]]]]]]]) -> retval文章来源地址https://www.toymoban.com/news/detail-446988.html

参数

  • minDisparity:最小可能的差异值。正常情况下,它为零,但有时校正算法会移动图像,因此需要相应地调整此参数。
  • numDisparities:disparity的搜索范围,即最大差异减去最小差异。该值始终大于零。在当前的实现中,这个参数必须可以被16整除。
  • blockSize:块的线性大小。大小应该是奇数(因为块位于当前像素的中心)。更大的块大小意味着更平滑,但不太准确的视差图。较小的块大小会给出更详细的视差图,但算法找到错误对应的几率更高。一般在3到11之间。
  • P1:控制视差平滑度的第一个参数,是相邻像素之间视差变化为1的惩罚。值越大,视差越平滑。
  • P2:控制视差平滑度的第二个参数,是相邻像素之间视差变化超过1的惩罚。值越大,视差越平滑。该算法要求P2>P1。
  • disp12MaxDiff:左右视差检查中允许的最大差异(以整数像素为单位)。将其设置为非正值以禁用检查。
  • preFilterCap:预滤波图像像素的截断值。该算法首先计算每个像素的x方向的导数,并按[-preFilterCap,preFilterCap]间隔剪裁其值。结果值被传递到Birchfield-Tomasi像素代价函数。
  • uniquenessRatio:最佳(最小)计算成本函数值应超过第二最佳值的百分比,满足此百分比的条件下才认为找到的匹配是正确的。通常,5-15范围内的值就足够好了。
  • speckleWindowSize:考虑其噪声斑点的平滑差距区域的最大尺寸,并使之无效。把它设置为0以禁用斑点过滤。否则,将它设置在50-200范围内的某个地方。
  • speckleRange:每个连接组件内的最大视差变化。如果进行斑点过滤,将参数设置为正值,它将被隐式地乘以16。通常,1或2就足够了。
  • mode:默认情况下,它设置为false。若将其设置为MODE_HH,将运行完整的双过程动态规划算法。

代码示例

import cv2

def estimate_depth(left_path, right_path, show=True):
    # 读取左右两张图像
    img_left = cv2.imread(left_path, 0)
    img_right = cv2.imread(right_path, 0)
    height, width = img_left.shape[:2]

    # 初始化stereo block match对象
    stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)

    # 获取视差图
    disparity = stereo.compute(img_left, img_right)

    if show:
        # 将视差图归一化
        # min_val = disparity.min()
        # max_val = disparity.max()
        # disparity = np.uint8(6400 * (disparity - min_val) / (max_val - min_val))

        # 显示视差图
        cv2.imshow('disparity image', disparity)
        cv2.imwrite('disparity.jpg', disparity)
        cv2.waitKey(0)


estimate_depth('images/view1.png', 'images/view5.png')

到了这里,关于Python cv.StereoSGBM_create方法参数与用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 中 key 参数的含义及用法

    哈喽大家好,我是咸鱼 我们在使用 sorted() 或 map() 函数的时候,都会看到里面有一个 key 参数 其实这个 key 参数也存在于其他内置函数中(例如 min() 、 max() 等),那么我们今天就来了解一下 key 参数的含义以及用途吧! 原文:https://www.thepythoncodingstack.com/p/the-key-to-the-key-para

    2024年02月04日
    浏览(37)
  • 支持向量机之SVR 用法与参数详解 python

    1. 概念: 针对二分类问题,寻求最优超平面 SVM: 使到超平面最近的样本点的“距离”最大 SVR: 使到超平面最远的样本点的“距离”最小。 SVR回归的优势:容忍偏离 传统的回归方法当且仅当回归f(x)完全等于y时才认为是预测正确,需计算其损失;而支持向量回归(SVR)则认为

    2024年01月20日
    浏览(35)
  • 【Python自查手册】之带参数请求params的用法

    params, 可以让我们带着参数来请求数据:我想要第几页?我想要搜索的?我想要多少个数据? headers, 请求头。它告诉服务器,我的设备/浏览器是什么?我从哪个页面而来? 和抓取单条URL不同,参数统一封装在params里 params是一个字典,添加进请求中去 通过对params进

    2024年02月06日
    浏览(70)
  • 【python】程序运行添加命令行参数argparse模块用法详解

     很多时候,我们的程序要带参数来运行不同的功能,需要解析命令行参数。argparse模块能够很好的提供支持。 argparse是 python 自带的命令行参数解析包,用于解析命令行参数的标准模块。可以让人轻松编写用户友好的命令行接口,还会自动生成帮助和使用手册,并在用户给程

    2024年02月04日
    浏览(49)
  • OpenCV报错:AttributeError: module ‘cv2.cv2‘ has no attribute ‘SIFT_create‘

    报错原因:opencv将SIFT等算法整合到xfeatures2d集合里面了。 改为:

    2024年02月07日
    浏览(47)
  • Python入门教程+项目实战-14.1节-函数的参数用法

    目录 14.2.1 位置参数与参数 14.2.2 函数的参数默认值 14.2.3 函数的引用类型参数 14.2.4 函数的可变参数 14.2.5 知识要点 14.2.6 系统学习python 位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。在调用函数时,会自动将实参与形参的位置对

    2024年02月11日
    浏览(55)
  • OpenCV人脸识别,训练模型为cv2.face.LBPHFaceRecognizer_create()

    OpenCV内部自带有三种人脸检测方式:LBPH人脸识和其他两种方法(Eigen人脸识别,FisherFace人脸识别)本次主要说明第一种方式LBPH检测。 1.创建需要训练的图片的集文件夹,和识别功能测试图片集的文件夹。 图(1)训练图集文件夹   图(1.1)taylorswift照片(尽量选用背景没其

    2024年02月07日
    浏览(48)
  • 【Python_requests学习笔记(五)】requests模块中proxies参数用法

    此篇文章中介绍requests模块中的代理IP参数proxies的详细用法。 1、proxies参数介绍 proxies参数:代替本机的IP地址, 去对接网络的IP地址;其作用是,隐藏真实IP,避免被目标网站封掉。 2、代理IP分类 常见两种分类依据:匿名度、协议 2.1、根据匿名度分类 高匿代理:Web端只能看

    2024年02月13日
    浏览(37)
  • 【Python_requests学习笔记(三)】requests模块中params参数用法

    此篇文章中介绍requests模块中的查询参数params的详细用法和使用环境。 1、params参数介绍 requests模块发送请求时,有两种携带参数的方法:1、params 2、data 其中, params在get请求中使用,data在post请求中使用 params的数据类型为字典类型。 2、params参数作用 对url地址中的查询参数进

    2024年02月08日
    浏览(43)
  • python scipy.optimize.least_squares用法,各个参数详细介绍

    最优化作业,要用一个老师给出的一个线性加非线性的模型 来拟合 太菜了,手搓不了,只能直接用scipy.optimize.least_squares,充分利用到least_squares各个参数,之后拟合效果还是挺好的。         fun, x0, jac=\\\'2-point\\\', bounds=(-np.inf, np.inf), method=\\\'trf\\\',         ftol=1e-8, xtol=1e-8, gtol=1e-8,

    2024年03月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包