OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf

OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf

ID:56984107

大小:887.28 KB

页数:11页

时间:2020-07-30

OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf_第1页
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf_第2页
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf_第3页
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf_第4页
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf_第5页
资源描述:

《OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算四、双目匹配与视差计算立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题,主要是以下因素的影响:(1)光学失真和噪声(亮度、色调、饱和度等失衡)(2)平滑表面的镜面反射(3)投影缩减(Foreshortening)(4)透视失真(Perspectivedistortions)(5)低纹理(Low

2、texture)(6)重复纹理(Repetitive/ambiguouspatterns)(7)透明物体(8)重叠和非连续目前立体匹配算法是计算机视觉中的一个难点和热点,算法很多,但是一般的步骤是:A、匹配代价计算匹配代价计算是整个立体匹配算法的基础,实际是对不同视差下进行灰度相似性测量。常见的方法有灰度差的平方SD(squaredintensitydifferences),灰度差的绝对值AD(absoluteintensitydifferences)等。另外,在求原始匹配代价时可以设定一个上限值,来减弱叠加过程中的误匹配的影响。以AD法求匹配

3、代价为例,可用下式进行计算,其中T为设定的阈值。图18B、匹配代价叠加一般来说,全局算法基于原始匹配代价进行后续算法计算。而区域算法则需要通过窗口叠加来增强匹配代价的可靠性,根据原始匹配代价不同,可分为:图19C、视差获取对于区域算法来说,在完成匹配代价的叠加以后,视差的获取就很容易了,只需在一定范围内选取叠加匹配代价最优的点(SAD和SSD取最小值,NCC取最大值)作为对应匹配点,如胜者为王算法WTA(Winner-take-all)。而全局算法则直接对原始匹配代价进行处理,一般会先给出一个能量评价函数,然后通过不同的优化算法来求得能量的最小

4、值,同时每个点的视差值也就计算出来了。D、视差细化(亚像素级)大多数立体匹配算法计算出来的视差都是一些离散的特定整数值,可满足一般应用的精度要求。但在一些精度要求比较高的场合,如精确的三维重构中,就需要在初始视差获取后采用一些措施对视差进行细化,如匹配代价的曲线拟合、图像滤波、图像分割等。有关立体匹配的介绍和常见匹配算法的比较,推荐大家看看StefanoMattoccia的讲义StereoVision:algorithmsandapplications,190页的ppt,讲解得非常形象详尽。1.opencv2.1和opencv2.0在做ster

5、eovision方面有什么区别了?2.1版增强了StereoVision方面的功能:(1)新增了SGBM立体匹配算法(源自HeikoHirschmuller的《StereoProcessingbySemi-globalMatchingandMutualInformation》),可以获得比BM算法物体轮廓更清晰的视差图(但低纹理区域容易出现横/斜纹路,在GCstate->fullDP选项使能时可消减这种异常纹路,但对应区域视差变为0,且运行速度会有所下降),速度比BM稍慢,352*288的帧处理速度大约是5帧/秒;(2)视差效果:BM

6、SGBM>GC;(3)BM算法比2.0版性能有所提升,其状态参数新增了对左右视图感兴趣区域ROI的支持(roi1和roi2,由stereoRectify函数产生);(4)BM算法和GC算法的核心代码改动不大,主要是面向多线程运算方面的(由OpenMP转向IntelTBB);(5)cvFindStereoCorrespondenceBM函数的disparity参数的数据格式新增了CV_32F的支持,这种格式的数据给出实际视差,而2.0版只支持CV_16S,需要除以16.0才能得到实际的视差数值。2.用于立体匹配的图像可以是

7、彩色的吗?在OpenCV2.1中,BM和GC算法只能对8位灰度图像计算视差,SGBM算法则可以处理24位(8bits*3)彩色图像。所以在读入图像时,应该根据采用的算法来处理图像:intcolor_mode=alg==STEREO_SGBM?1:0;////////////////////////////////////////////////////////////////////////////载入图像cvGrabFrame(lfCam);cvGrabFrame(riCam);frame1=cvRetrieveFrame(lfCam);fr

8、ame2=cvRetrieveFrame(riCam);if(frame1.empty())break;resize(frame1,img1,img_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。