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

Birchfield和Tomasi方法(BT方法)小结 BT方法(Birchfield和Tomasi的方法) 参考: Depth Discontinuities by Pixel-to-Pixel Stereo BT方法主要解决图像深度不连续的问题 图1 图1所示的是一段图片的匹配序列,可以看到中间的一段序列是连续的,而左右两边则中间是不连续的。如果我们利用采样方法对图片中的像素计算代价时,可以推测中间一段的采样代价会较低且平稳,而左右两边不连续的像素点采样时,会出现较大的代价。 但是在图示情况下,不连续的像素也仅仅是相差几个像素点,而不是差的特别 阅读详情

四、双目匹配与视差计算

立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题,主要是以下因素的影响:

 

(1) 光学失真和噪声(亮度、色调、饱和度等失衡)

(2) 平滑表面的镜面反射

(3) 投影缩减(Foreshortening

(4) 透视失真(Perspective distortions

(5) 低纹理(Low texture

(6) 重复纹理(Repetitive/ambiguous patterns

(7) 透明物体

(8) 重叠和非连续

 

 

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

 

A、匹配代价计算

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

图18

B、 匹配代价叠加

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

图19

 

C、 视差获取

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

 

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

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

 

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

算法思考】双目视差求像素深度公式理解 以上得到的关系都是以像素为单位,如果要切换到物理世界的长度单位,需要知道每个像素的长度。, 注意经过极线校正后的双目相机,左眼和右眼互相匹配的像素有相同的纵轴坐标(纵轴坐标都是。我们首先规定,以上的变量的单位都是(像素)。而两个像素之间的视差呢,可以理解为。另外从上述公式我们可以看出来,视差越小,深度越大,也符合我们的直觉。双目相机可以通过左右目图像的匹配得到每个像素的视差,即左眼像素。因此我们可以得到深度和视差的关系,其中。如上图所示,我们要求解的像素深度就是。假设我们知道左眼某个像素的视差 阅读详情

相关推荐

OpenCV双目测距(双目标定、双目校正和立体匹配

本文采用MATLAB标定工具箱和OpenCV3.10来实现双目测距,设备为两个CMOS工业相机和相应的双目云台。 首先感谢CSDN上两位大神前辈邹宇华和scyscyao,虽然是六年前的博客,OpenCV也从1.0的版本更新到了3.1版本,但博客对机器视觉初学者来说仍然提供了巨大的帮助。本文主要参考了 OpenCV学习笔记(17)双目测距三维重建OpenCV实现问题集锦(二)双

子非鱼的博客 7万+

计算机视觉】双目测距(五)--匹配算法对比

原文: http://www.cnblogs.com/polly333/p/5130375.html 种匹配算法比较 BM算法: 该算法代码: view plaincopy to clipboardprint? CvStereoBMState *BMState = cvCreateStereoBMState();  int SADWindowSize=15; 

ZhangPY的专栏 1万+

opencv双目测距-SGBM、BM算法输出深度图完整程序(视差测距法)

前言 本篇文章是在高博的一起做RGB-D SLAM 系列 的基础上修改代码,增加了单、双目接口以及实时点云图构建和路径显示功能,并利用词袋模型进行闭环检测,实现了一个简易单双目slam系统。

ADDfish的博客 1万+

运用OpenCV进行双目匹配时各参数的意义

在进行双目匹配的过程中发现匹配参数对最后得到的视差的结果有很大的影响。但是对各参数的意义本人却不是很明白。因此在这里总结一下: 、通過視差計算維坐標數據 這部分主要以 OpenCV2.1版的 stereo_match 例程為基礎,該例程包括種雙目匹配算法STEREO_BM, STEREO_SGBM, STEREO_HH,其中 STEREO_HH 其實是 STEREO_SGB

星之河的专栏 5290

双目相机视差测距

双目相机视差测距

GitHub:https://github.com/Shaoyc 6024

opencvSGBM半全局立体匹配算法的研究(2)

转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/51866700 自己在stereosgbm.cpp的最后加了一个把灰度图像显示成伪彩色图像的函数,为的是更好的观察视差图。 myStereoSGBM::GenerateFalseMap(cv::Mat &src, cv::Mat &disp) ...

weixin_30772105的博客 1748

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

OpenCV学习笔记(18)双目测距三维重建OpenCV实现问题集锦()立体匹配视差计算 2010年10月26日   [b] OpenCV学习笔记18双目测距三维重建OpenCV实现问题集锦立体匹配视差计算 [/b][b]收藏 [/b]   四、双目匹配视差计算   立体匹配主要是通过找出每对图像间的对应关系,根据角测量原理,得到视差图;在获得了视差信...

dmc58dmc 1161

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

OpenCV学习笔记(18)双目测距三维重建OpenCV实现问题集锦()立体匹配视差计算4. cvFindStereoCorrespondenceBM的输出结果好像不是以像素点为单位的视差? “@scyscyao:在OpenCV2.0中,BM函数得出的结果是以16位符号数的形式的存储的,出于精度需要,所有的视差在输出时都扩大了16倍(2^4)。其具体代码表示如下:dptr[y*dstep]...

weixin_39648469的博客 361

OpenCV學習筆記(18)雙目測距與維重建的OpenCV實現問題集錦()立體匹配與視差計算

http://blog.csdn.net/chenyusiyuan/article/details/5967291 四、雙目匹配與視差計算 立體匹配主要是通過找出每對圖像間的對應關系,根據角測量原理,得到視差圖;在獲得了視差信息後,根據投影模型很容易地可以得到原始圖像的深度信息和維信息。立體匹配技術被普遍認為是立體視覺中最困難也是最關鍵的問題,主要是以下因素的影響:

I am Rocky 1万+

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

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

jiav_net的专栏 804

OpenCV C++双目三维重建:双目摄像头实现双目测距

opencv C++实现双目测距opencv三维重建,c++实现三维重建双目测距,WLS滤波,opencv视差

AI吃大瓜的博客 3万+

Android双目三维重建:Android双目摄像头实现双目测距

Android双目三维重建:Android双目摄像头实现双目测距 Android实现双目测距,Android双目三维重建opencv三维重建opencv双目测距

AI吃大瓜的博客 9251
上一篇: 机器人视觉导航的OpenCV实现-视频演示
下一篇: OpenCV学习笔记(19)双目测距与三维重建的OpenCV实现问题集锦(四)三维重建与OpenGL显示
邹宇华
博客等级 码龄19年 7242粉丝 185原创
评论 51
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值