当前位置: 首页 > news >正文

有趣的网站名称网站排名查询平台

有趣的网站名称,网站排名查询平台,前端app用什么开发,软件开发与应用原理解释目前立体匹配算法是计算机视觉中的一个难点和热点,算法很多,但是一般的步骤是:A、匹配代价计算匹配代价计算是整个立体匹配算法的基础,实际是对不同视差下进行灰度相似性测量。常见的方法有灰度差的平方SD(squ…

原理解释

目前立体匹配算法是计算机视觉中的一个难点和热点,算法很多,但是一般的步骤是:

A、匹配代价计算

匹配代价计算是整个立体匹配算法的基础,实际是对不同视差下进行灰度相似性测量。常见的方法有灰度差的平方SD(squared intensity differences),灰度差的绝对值AD(absolute intensity differences)等。另外,在求原始匹配代价时可以设定一个上限值,来减弱叠加过程中的误匹配的影响。以AD法求匹配代价为例,可用下式进行计算,其中T为设定的阈值。

这就是在参数设置中阈值的作用,在视差图中经常有黑色区域,就是和阈值的设置关。

B、 匹配代价叠加

一般来说,全局算法基于原始匹配代价进行后续算法计算。而区域算法则需要通过窗口叠加来增强匹配代价的可靠性,根据原始匹配代价不同,可分为:

此图是核心算法的解释,就是计算区域内像素差值,可以为单个像素也可以为一定区域内,主要看SAD的窗口大小的设置,同时SAD设置决定误匹配的多少和运算效率问题,所以大小设置一定要很慎重。

C、 视差获取

对于区域算法来说,在完成匹配代价的叠加以后,视差的获取就很容易了,只需在一定范围内选取叠加匹配代价最优的点(SAD和SSD取最小值,NCC取最大值)作为对应匹配点,如胜者为王算法WTA(Winner-take-all)。而全局算法则直接对原始匹配代价进行处理,一般会先给出一个能量评价函数,然后通过不同的优化算法来求得能量的最小值,同时每个点的视差值也就计算出来了。

D、视差细化(亚像素级)

大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。

亚像素级的处理就是涉及到BMState参数设置后后续参数的设置了。

有关立体匹配的介绍和常见匹配算法的比较,推荐大家看看Stefano Mattoccia 的讲义 Stereo Vision: algorithms and applications,190页的ppt,讲解得非常形象详尽。

预处理滤波参数

/*匹配图像预处理*/

  • setPreFilterType(cv::StereoBM::PREFILTER_XSOBEL);

预处理滤波器类型,有两种可选类型:PREFILTER_NORMALIZED_RESPONSE(归一化响应) 或者 PREFILTER_XSOBEL (水平方向Sobel算子,默认类型)

  • setPreFilterCap (int preFilterCap)

预处理滤波器的截断值,预处理的输出值仅保留[-preFilterCap, preFilterCap]范围内的值,参数范围:1 - 31(文档中是31,但代码中是 63), int

  • setPreFilterSize (int preFilterSize)

预处理滤波器窗口大小,容许范围是[5,255],一般应该在 5x5..21x21 之间,参数必须为奇数值

SAD 参数

  • setBlockSize(int blockSize);//SAD窗口大小

块大小,应为奇数,取值【3,11】比较合适,较大的块大小意味着更平滑但不太准确的视差图。 较小的块大小提供了更详细的视差图,但算法发现错误对应关系的机会更高。

SAD窗口大小,容许范围是[5,255],一般应该在 5x5 至 21x21 之间,参数必须是奇数,int 型

  • setMinDisparity(int minDisparity);

最小视差默认值为 0, 可以是负值,int 型

  • setNumDisparities(nmDisparities); //视差搜索范围

视差窗口,即最大视差值与最小视差值之差, 窗口大小必须是 16 的整数倍,int 型

搜索视差时的范围【MinDisparity,MinDisparity+numOfDisparities】,必须为16的整数倍

后处理参数

在算出初始视差图后会进行视差图后处理,包括中值滤波,连通域检测等。中值滤波能够有效去除视差图中孤立的噪点,而连通域检测能够检测出视差图中因噪声引起小团块(blob)。判断当前像素点四邻域的邻域点与当前像素点的差值diff,如果diff<speckRange,则表示该邻域点与当前像素点是一个连通域并设置一个标记。然后再以该邻域点为中心判断其四邻域点,步骤同上。直至某一像素点四邻域的点均不满足条件,则停止。然后判断被标记的像素点个数count,如果像素点count<=speckleWindowSize,则说明该连通域是一个小团块(blob),因此将当前像素点值设置为newValue(表示错误的视差值,newValue一般设置为负数或者0值)。否则,表示该连通域是个大团块,不做处理。所有像素点处理后,满足条件的区域会被设置为newValue值,后续可以用空洞填充等方法重新估计其视差值。

  • setDisp12MaxDiff (int disp12MaxDiff)

//左视差图(直接计算得出)和右视差图(通过cvValidateDisparity计算得出)之间的最大容许差异。超过该阈值的视差值将被清零。该参数默认为 -1,即不执行左右视差检查。

  • setUniquenessRatio (int uniquenessRatio)

视差唯一性百分比, 视差窗口范围内最低代价是次低代价的(1 + uniquenessRatio/100)倍时,最低代价对应的视差值才是该像素点的视差,否则该像素点的视差为 0 (the minimum margin in percents between the best (minimum) cost function value and the second best value to accept the computed disparity, that is, accept the computed disparity d^ only if SAD(d) >= SAD(d^) x (1 + uniquenessRatio/100.) for any d != d*+/-1 within the search range ),该参数不能为负值,一般5-15左右的值比较合适,int 型

  • setSpeckleRange (int speckleRange)

speckleRange:视差变化阈值,当窗口内视差变化大于阈值时,该窗口内的视差清零,int 型

在sgbm的官方参数介绍中说该值会被乘以16,设置为1或2比较合适,bm应该是没有乘以16

  • setTextureThreshold (int textureThreshold)

低纹理区域的判断阈值,如果当前窗口内所有邻居像素点的x导数绝对值之和小于指定阈值,则该窗口对应的像素点的视差值为0(That is, if the sum of absolute values of x-derivatives computed over SADWindowSize by SADWindowSize pixel neighborhood is smaller than the parameter, no disparity is computed at the pixel),该参数不能为负值,int 型

  • setSpeckleWindowSize (int speckleWindowSize)

检查视差连通区域变化度的窗口大小, 值为 0 时取消 speckle 检查,int 型

检查视差连通区域变化度的窗口大小, 值为 0 时取消 speckle 检查,否则取【50,200】内的值比较合适

  • setROI1 (Rect roi1) setROI2 (Rect roi2)

roi1, roi2:左右视图的有效像素区域,一般由双目校正阶段的 cvStereoRectify 函数传递,也可以自行设定。一旦在状态参数中设定了 roi1 和 roi2,OpenCV 会通过cvGetValidDisparityROI 函数计算出视差图的有效区域,在有效区域外的视差值将被清零。

在上述参数中,对视差生成效果影响较大的主要参数是 SADWindowSize、numberOfDisparities 和 uniquenessRatio 三个,一般只需对这三个参数进行调整,其余参数按默认设置即可。

https://blog.csdn.net/chenyusiyuan/article/details/5967291

https://blog.csdn.net/CipherPolzz/article/details/122349550

https://blog.csdn.net/KinboSong/article/details/72918432

https://blog.csdn.net/ADDfish/article/details/110433598

http://www.fp688.cn/news/145209.html

相关文章:

  • 外贸网站建站推广免费网站代理访问
  • 网站建设 乐清网络公司seo百度百科
  • 免费的开发网站建设宁波关键词优化时间
  • php 爬取网站所有链接石家庄seo代理商
  • 微信用什么小程序可以提取文字优化软件
  • 闵行网站建设公司长沙专业网络推广公司
  • 福建大佳建设工程有限公司网站安卓优化大师老版本
  • 简洁网站模板下载seo 视频
  • 西安市政府网站建设管理规范今日头条新闻最新
  • 个人网站建立今日油价92汽油价格表
  • 网站制作网站模板b站网页入口
  • 诸城易讯网站建设服务中心淘宝关键词挖掘工具
  • 做财经直播网站百度有什么办法刷排名
  • 佛山 做网站深圳最新通告今天
  • 上海网站制作衫2022年每日新闻摘抄10一30字
  • 贵阳门户网站88个seo网站优化基础知识点
  • 单页面网站跳出率百度搜索推广多少钱
  • 可信网站认证是否必须做免费域名怎么注册
  • 哪个网站可以兼职做效果图免费接单平台
  • vps如何创建网站百度关键词查询排名怎么查
  • 沈阳市城乡建设局网站首页如何推广网站
  • 传媒网站如何设计济南网站运营公司
  • 东莞市建网站本周国内重大新闻十条
  • 老公给人做网站结果网站卖假货引擎搜索是什么意思
  • 成都门户网站建设google在线代理
  • 做服装店网站的素材重庆网站建设与制作
  • 毕业设计网站论文正规seo排名外包
  • 西安三桥网站建设大连网站seo
  • 怎么做网站浮动模块自己做网站需要什么条件
  • 做病毒和木马的培训网站太原搜索引擎优化招聘信息