双目立体匹配 等 算法 论文 综述 全局局部算法 CSCA NLCA SegmentTree树 DoubleBP Belief-Propagation AD-Census SGM

本文综述了双目立体匹配算法,包括全局算法如动态规划、图割法、置信度传播,以及局部算法如区域、特征和相位匹配。深入探讨了CSCA、NLCA、DoubleBP等算法,分析其特点和贡献,并介绍了匹配代价计算、聚合、视差获取和修正等关键步骤。此外,还涉及了深度图上采样、误差处理和半全局匹配等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双目立体匹配 等 算法 论文 综述

本文GITHUB

博文末尾支持二维码赞赏哦 _

双目立体视觉技术实质就是模拟人的双眼视觉处理系统来处理通过摄像机采集所
获取的图像,它利用两台或多台摄像机在一定约束条件下采集同一场景的图像,对采集
到的图像进行信息提取和整合,最终恢复图像中场景的三维信息。 

基于双目视觉的立体匹配算法研究涉及模式识别、人工智能、机器视觉、计算机图
形学等领域的许多相关复杂的研究课题。随着许多著名专家学者对此问题不断深入地研
究,立体匹配算法的精度越来越高,实时性越来越好。

kitti双目算法评测

Middlebury Stereo Evaluation - Version 2 算法评测

立体匹配的研究背景以及意义

立体匹配导论

三维重建技术概述 pcl 点云配准

三维重建基础 背景意义 双目立体视觉 tof 结构光

机器人视觉技术中所涉及的立体匹配通常是指应用于机器人立体视觉系统 
中的一项关键技术,是指采用行之有效的方法来分析从不同的视角条件下获取 
的目标物体的左右图像(图像对)之间的一致性或相似性,并识别出左右图像 
(图像对)间的对应点或同名点; 立体匹配技术都是指应用于机 
器人双目立体视觉系统中的。

当三维空间场景中的标定物被投影为二维图像时,二维图像信息丢失了标定物的深度信息 z,
立体匹配就是要恢复物体的深度信息 z,它是模拟人的双眼感知外部事物的过程。
具体来讲,立体匹配是对所选图像对中的图像特征点的计算,来建立不同图像特
征空间点中的像素对应关系。换句话说,就是将世界坐标系中的空间特征点与图像坐标
系中相对应的图像特征点进行一一映射,经过匹配算法等处理计算出空间特征点的三维
坐标,最终获得其对应的视差图。在视差图中,所得的是图像某一点以像素为单位的视
差值,它一般是一个整数估计值,由是差值就可得到场景的深度信息。 


根据采用最优化理论方式的不同,立体匹配算法又分为基于局部的立体匹配算法和基于全局的立体匹配算法。
基于局部的立体匹配算法的核心在于匹配代价的计算和代价聚合阶段。
基于全局的立体匹配算法在视差计算阶段处理算法中的大部分计算问题,最终得到的视差图精准度更高,
基本上满足人们在实际生产应用中对匹配精度的要求

全局

基于全局的立体匹配算法使用全局约束来解决由于遮挡或重复纹理造成的像素误
匹配问题,是基于优化理论方法估计视差值。全局匹配问题通常被描述为能量最小化问
题,在其建立的能量函数中,除了数据项之外,还有平滑项。数据项主要是测量像素之
间的相似性问题,而平滑项是平滑像素之间的视差关系,保证相邻像素之间视差的平滑
性.基于全局的立体匹配算法需要构造一个能量函数,其形式一般为:

E = Edata + Esmooth

其中数据项 Edata 描述了匹配程度,平滑项 Esmooth体现了场景中的各种约束。

基于动态规划的立体匹配算法

全局立体匹配算法中动态规划算法是使用比较多的一种经典算法,
传统的动态规划立体匹配算法基于极线约束,
在每条极线上面运用动态规划方法来寻找最佳匹配点,
并通过动态寻优的方法来寻求全局能量最小化,得到视差匹配图。
但由于只是扫描了水平极线上像素点,导致视差图的条纹现象十分明显。

KunpengLi通过先提取图像中的特征点,然后将特征点用最近邻搜索算法进行匹配的
方法,以缓解传统的动态规划算法引起的横条纹效应;为了更加高效的利用动态规划立体匹配
算法,CarlosLeung提出了一种快速最小化方案,通过使用迭代动态规划算法来进行立体匹
配,该算法对行和列进行迭代以达到实现快速立体匹配的目的;TingboHu考虑到动态规划
匹配算法对图像边缘不能有效匹配的问题,将单一的极线搜索改进成单向四连接树的匹配算
法,并针对SDFC树设计了快速动态规划优化方法,这样可以在有效的提高匹配精度的同时,
将计算复杂度降低到传统动态规划算法的1/12。

基于图割法的立体匹配算法

图割法是一种能量优化算法,通过一个无向图来表示要分割的图像,并利用Ford和Fulk-
erson的最大流-最小割理论求出最小割,也就是最优的图像分割集合,
通过该方法可以很好的解决动态规划引起的条纹现象,但是缺点是时间复杂度比较大。
颜轲先将图像进行分割并建立立体匹配的马尔科夫有随机场模型,然后通过约束条件
保留分割的信息,提高了匹配的精度;Lempitsky通过将图像进行最优分割,然后对分割后
的图像进行分别计算,最后将结果进行结合,确保准确率不会下降的情况下,大大提高图割法的运行速度.

基于置信度传播的立体匹配算法

置信度传播的立体匹配算法由马尔科夫随机场模型组成。其将像素点作为网络传输的节点,
每个节点包含数据信息和消息信息两种,分别保存像素的视差值和每个节点的信息值。
置信度传播算法通过像素在四邻域网格上进行,在匹配的时候设定编号的模型,
通过对编号相同的点进行搜索。它的消息值是自适应的,在低纹理区域能够将消息传播到很远。
虽然匹配的精度提高了,但由于单个像素点容易产生误匹配,并且进行的是全局图像像素的搜索,
算法时 间复杂度非常大。因此如何快速有效的运用该算法也成为了研究的热点。

局部

基于局部的立体匹配算法采用局部优化的理论方法进行像素视差估计,研究的重点
在于匹配代价的计算和匹配代价的累积上。它是在最大视差的范围内找出匹配代价最小
的像素点作为目标匹配像素,利用局部信息求出匹配代价最小的像素点从而计算出视
差。与全局立体匹配算法相同,这类算法是通过寻找能量最小化方法进行像素视差估计,
但是,在能量函数中只有数据项没有平滑项。实时立体视觉系统多采用匹配速度较快的
局部匹配算法来处理获得的图像。 
基于局部的立体匹配算法主要有 SSD、SAD 等算法,大致可以分为三类:自适应
窗体立体匹配算法、自适应权值立体匹配算法和多窗体立体匹配算法。
这些算法都是从邻域像素中选择最佳的支持区域和支持像素,即尽可能选择与要计算像素具有相同真实
视差的像素点作为其支持像素,利用支持像素作为邻域约束条件,从而得到比较好的局
部视差估计。自适应窗体是窗体在自适应进行变化,包含大小和形状,针对不同的变化
规则就具有不同的算法。多窗体匹配算法,主要是从多个窗体中,按照一定的规则,选
择最佳的窗体进行视差估计。自适应权值的立体匹配算法,主要是建立邻域像素的真实
支持度关系,根据它们的属性的不同建立不同的支持度模型,能反映他们之间真实的视
差关系。 

基于区域的立体匹配算法

基于区域的立体匹配算法通过确定源图像上一个像素点,并在该像素点周围选取一个子
窗口,然后在目标图像的区域内寻找与该子窗口最为相似的窗口,匹配得到的窗口对应的像素
点就是该像素的匹配点。该算法在时间复杂度上比较小,但是对于弱纹理区域匹配效果不太
理想,受环境影响比较大,比如光照、遮挡等影响。并且在进行立体匹配的时候,子窗口大小的
选择也成为一个难点。
现在普遍利用视差估计、窗口视差近似等方法获得具有自适应的窗口,并在此基础上改进
算法。曾凡志在自适应窗口的基础上,采用8个相同的窗口运用并行处理的方法,根据图
像的平滑情况从8个方向选择合适的区域,该算法解决了在低纹理区域容易造成误匹配的现
象,并且运行时间与传统时间差别不大;ZF Wang将区域作为匹配的基元,通过引入区域之
间的合作和竞争,采用协作优化模式来最小化匹配成本。

于区域的图像匹配方法能够直接产生浓密的视差图,缺点是计算量大,实时性不强;

基于特征的立体匹配算法

基于特征的立体匹配算法主要利用图像的几何特征信息,根据特征信息进行视差的估计。
所以在进行匹配的时候,要先进行特征点的提取,并根据特征点建立物体的稀疏三维轮廓,
如果想要稠密的立体图则需要进行相应的插值算法。基于特征的立体匹配算法更多的强调的是
物体的结构信息,根据特征提取的不同,又可以分为基于点特征的匹配算法,
基于线特征的立体匹配等。

基于特征的图像匹配方法是针对摄像机获取的图像对中选取特定的特征点进行匹配,
其优点是匹配速度相对较快,匹配结果的精度也较高,
对于图像对中没有明显纹理等特征的区域容易造成歧义匹配而无法处理;

基于相位的匹配

是利用相位信号作为匹配基元,它可以精确到对每个像素的匹配,
经过特殊处理后,一般只能得到空间场景中标定物的大致结构.

基于相位的立体匹配算法是在频率区域范围内对相位信号进行视差估计,算法假定
图像对中的对应像素点附近在其频率范围内局部相位是相等的,从频率域相位的角度来
进行像素点视差值的估计。相位信号在空间域上的平移现象在频率域中表现为成比例
的相位平移,主要依据是傅立叶平移定理。该类算法对于各种畸变,如几何畸变和辐射
畸变等,具有很好的抗干扰能力,所以基于相位的匹配算法能够获得亚像素级的致密视
差图。徐彦君提出了一种基于相位的尺度自适应的立体匹配方法,尺度自适应是一种基
于频率响应积分面积相关的选择规则,实现了一种新颖的尺度自适应算法,对于常见的
“卷积
”问题,采用
“由粗及细
”的逐步求精方法处理,该方法获得的视差图有精度高、稳
定性好等优点,且能预测很大的视差范围。 

经典立体匹配算法对比表

         立体匹配算法名称                 算法特性
    基于动态规划的立体匹配算法      时间复杂度比较低,匹配精度不高,容易出现条纹现象
    基于图割法的立体匹配算法        能解决动态规划出现的条纹现象,边缘匹配处理比较好,时间复杂度比较高
    基于置信度传播的立体匹配算法    收敛性比较差,时间复杂度比较高,对于低纹理问题处理的比较好
    基于区域的立体匹配算法          时间复杂度比较低,算法受环境影响比较大,弱纹理问题不能有效解决
    基于特征的立体匹配算法          时间复杂度比较低,对于几何特征明显的图像匹配效果比较好

3 个基本问题

1)  匹配基元的选择:
    选择合适的图像特征点、特征线或特征区域等作为匹配基元,使匹配结果更准确; 

    匹配基元是指在图像中有明显特征的点、线或者特定的区域,它是立体匹配算法的
    最小匹配单元。由于在双目立体视觉系统中采集图像阶段经常受到摄像机的角度和位
    置、场景纹理的特征和数量和光照的强弱变化程度等外在因素的影响,因此要在获取的
    图像对中对所有的像素点都进行无歧义性的匹配是有难度的。 
    
    前常用的匹配基元有:过零点(zero-crossing)、边缘轮廓(object  boundaries)、
    线性特征(linear features)、像素灰度值等,
    从总体上大致分为:
    点状特征、区域特征和 线状特征.
    
    其中,点状特征是最基本的特征基元,所含有效的信息量相对较少;
    区域特征基元具有较好的全局属性,所含的信息量较为丰富,能够简单描述出事物的大致结构;
    线状特征基元是介于两者之间的。 
    
    点状特征基元的优点是对特征点定位准确、检测和描述像素点的信息更容易,在合
    适的图像中可以采用点状特征基元对场景进行三维重建。采用点状特征作为基元的算法
    需要采用比较有力的约束准则及匹配策略来约束像素点,通常选择图像中的角点作为点
    状特征匹配基元。 


2)  匹配准则:
    将客观世界中存在的事物固有的属性作为匹配算法必须遵循的准则,
    所得结果能够更真实的反映事物的原貌及特征; 
    
    极线约束、唯一性约束 、连续性约束 、顺序一致性约束
    
3)  算法结构:选择或设计合适的数学方法对匹配算法来说也是非常关键的一步,
    直接影响算法的执行效率。 

相似性测度

立体匹配中的相似性测度是衡量两幅或多幅图像中,参考图像中的匹配模板与待匹
配图像中区域之间的相似程度的度量,这个测度可以让我们找到最优的匹配区域。
专家和研究学者对立体匹配问题已研究经,也提出了一些关于相似性测度的标准及方法。
常见的有:最小值绝对差 
SAD(Sum of Absolute Difference)、
最小值平方差 SSD (Sum of Squared Difference)、
互相关 NCC (Normalized Cross Correlation)等多种测度

立体匹配算法的步骤

在双目立体视觉中,立体匹配是比较关键的部分,也是最困难和最复杂的部分,
其目的就是根据所选相似性测度,在待匹配图像中,找出参考图像某物点的对应匹配点,
建立双目图像间的特征对应关系,W此计算二者的视差并恢复图像深度信息。
立体匹配算法的研究重点主要在于匹配基元的选择、相似性测度函数、立体匹配策略和约束准则等。

1)匹配代价计算; 
2)匹配代价叠加; 代价聚合
3)视差获取;
4)视差细化(亚像素级)

基于全局的立体匹配算法一般不需要进行匹配代价的叠加,
而是利用匹配代价和平滑约束来实现全局能量最小化,通常不包含第 2步。
而基于局部的立体匹配算法是基于矩形窗口滑动的方法,
它以中心像素点的领域像素点灰度均值为矩形窗口进行匹配代价的叠加。

1. 匹配代价计算

SD AD Census
C(x, y, z) =L(x +d, y) −R(x, y) 
L 代表双目立体视觉系统中的左视图, 
R 为双目立体视觉系统中的右视
图, x和 y 分别表示像素点的坐标值,d像素点的视差值。
经过计算后得到的C 为三维矩阵,我们称它为视差空间 DSI(Disparity Space Image),

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

视差空间 DSI 中任意的 d 对应有 x 和 y 的切面,
而该空间中(x, y,d) 的值表示参考图像中点(x, y) 被赋予视差 d 时的匹配代价m(x, y,d) 。

2. 匹配代价叠加/聚合

匹配代价的叠加是基于窗口的代价函数的叠加[7]。
基于区域的匹配算法它用来增强匹配代价的可靠性,
通常以待匹配像素为中心点选择一个矩形区域,将区域内的匹配代价与周围的匹配代价进行叠加。

根据原始匹配代价不同可分为 SSD(sum  of  squared differences)算法、
SAD(sum  of  absolute  differences)等。
对于给定支持域的像素的匹配代价聚集操作可以采用 2D 或 3D 卷积的形式进行.
C(x, y, d) = w(x, y, d) ∗ C0(x, y, d)
其中,C0(x, y, d) 为给定像素的支持域内某像素的匹配代价值, 
w(x, y, d) 表示支持域内给定像素的权值。
C(x, y,d) 为给定像素的新的匹配代价。

3. 视差获取

视差的获取的方法分为两类,一类是基于窗口的局部立体匹配算法,它只需在窗口
的范围内选择匹配代价聚集后的最佳点(最佳点的获取通常采用 SAD 或  SSD 算法结果 取最小值)作为对应的匹配点(WTA赢者通吃)。

另一类是基于全局的立体匹配算法,实质是获得能量函
数的最小值,算法先给出一个能量评价函数,然后通过优化算法来求得能量的最小值,
使能量函数最小的匹配关系即为最终的视差,同时可以获得每个像素的视差值。 

局部匹配算法只有数据项,并无平滑项。全局算法包含 数据项和平滑项。

平滑项分为两种情况,
一种是极线间平滑性,
另一种是极线方向平滑性,两者种情况的计算方法相同,
都采用基于邻域的视差值计算方法,
如极线方向平滑性的计算公式:
Esmooth = sum( ρ(d(x, y),d(x+1, y)) )

在视差图中存在视差深度不连续的情况,例如场景中的物体与其背景相交的区域。
由于视差深度不连续的情况一般都发生在图像的边缘区域。如果存在图像中的灰度值变
化较大的区域,通常采用降低平滑代价的方法解决。由于场景中物体与其边界处通常存
在 视 差 深 度 的 跳 变 , 造 成 视 差 深 度 不 连 续.
ρ(d(x, y),d(x+1, y))
 ====> 改为
 ρ(d(x, y),d(x+1, y)) =  | 0   , d(x,y) = d(x+1,y) ,     视差差1 而 代价相同  平滑处
                         | t   , |d(x,y) - d(x+1,y)|=1    视差差1 而 代价额差1 ,  t为常数
                         | w   ,  其他情况 , w 更加灰度差值大小确定

4. 视差修正

视差获取及优化步骤中得到的是估计的视差图,
由于遮挡、噪声和光强等因素的影响,匹配过程中不可避免的存在误匹配点。
估计视差图中存在一些离散的空白像素,需要对其做进一步修正。 
常用的修正方法有两种:
    一种是采用左右一致性检验的方法,
        该方法的步骤是对两幅图像中的匹配点分别检测并进行对比,
        若相同,说明该匹配点视差值是正确的,
        若不相同,则认为该点是误匹配点并对其进行校正处理。
    另一种是采用平滑滤波的方法,
        常用的平滑滤波是中值滤波,它将窗口内所有像素的灰度值从大到小排序,将排序后的
        中间值取出替代要误匹配的数据,让周围的像素值更接近的真实值,从而消除孤立
        的噪声点,达到视差修正的目的。 

面临的挑战

1. 遮挡区域的立体匹配。
2. 弱纹理或重复区域的立体匹配。歧义性(ambiguity)比较大。视差平面集合能近似表示场景的结构。
3. 深度不连续像素点的立体匹配。物体的边缘,简单的推理和插值
4. 照变化引起的立体匹配问题。没有考虑镜面反射的情况。
5. 倾斜区域的匹配问题。

图像分割

图像分割(Image segmentation)方法是近年来才引入立体视觉系统中,也是立体匹
配算法研究中的一个重要的研究方向,图像分割技术在复杂场景的图像识别、图像分析、
图像理解和表达等方面能够发挥其优势。图像分割的原理是对摄像机所拍摄场景中的图
像进行分析,根据一定相似准则分析出图像场景中的一些相类似的特征点或特征区域,
再根据一定的约束准则对图像中相似点或相似区域的像素进行分组并聚合,此时聚合后
的图像上会出现有特殊规律的区域。这些特殊的区域既使后续的图像高级处理(包括
图像识别、图像分析、图像理解和表达等)阶段的操作步骤大大减少,又能保持图像结
构特征的关键信息不丢失。针对立体匹配算法,将图像分割成一些具有相同特征的小区
域,而这些区域往往有一个平滑的视差,然后利用上述方法进行匹配就会得到更好的效果。 
研究者和专家们对图像分割技术的研究及方法在一直不断的探索改进中,
常见的图像分割算法有
    基于阈值分割、
    基于区域分裂合并、
    分水岭分割、
    均值漂移(Mean shift)、
    
<think>好的,我现在需要帮助用户了解或实现传统的双目立体匹配算法。首先,我得回顾一下用户提供的引用内容,确保信息准确。用户引用了四个资料,其中提到了双目立体视觉的基本流程、传统算法与深度学习的结合、ELAS算法以及动态规划方法。用户的问题是关于传统算法的原理与实现,所以重点应该放在传统方法上,而不是深度学习。 首先,我需要明确双目立体匹配的基本原理。根据引用[1]和[2],双目立体视觉通过左右视图的匹配像素点对,利用三角测量计算深度。核心在于立体匹配算法。传统算法通常分为四个步骤:匹配代价计算、代价聚合、视差计算和视差优化。这些步骤在引用[3]和[4]中也有提及,比如ELAS算法虽然不同,但提到了代价计算和视差优化等概念。 接下来,用户需要知道传统算法的原理和实现步骤。我需要分步骤解释,并确保每个步骤都有对应的说明。例如,匹配代价计算常用方法有SAD、SSD、NCC等,这些在传统算法中是基础。然后,代价聚合可能使用局部方法(如窗口求和)或全局方法(如动态规划、图割)。视差计算通常通过WTA(赢者通吃)策略,而视差优化则包括左右一致性检查、亚像素细化等。 然后,用户可能需要一个具体的例子来理解如何实现。根据引用[4],动态规划方法是在对极线上寻找最优路径,所以可以考虑以动态规划为例,给出一个简单的代码框架。不过,用户提供的引用中ELAS算法更高效,但属于较新的方法,可能不属于传统范畴。因此,选择动态规划或SGM(半全局匹配)作为例子可能更合适,但SGM可能复杂度较高,动态规划更基础。 同时,用户的问题可能涉及如何选择算法,以及实现的难点在哪里。比如,传统算法在纹理缺失区域、重复纹理等情况下表现不佳,这些需要处理。另外,代码示例可能需要使用Python,但实际中传统算法可能用C++更高效,不过用户可能需要Python示例。所以给出一个简化的SAD加动态规划的伪代码或示例可能有助于理解。 最后,根据用户的要求,生成相关问题。这些问题应该围绕传统算法的步骤、优缺点、改进方法、与其他算法的比较等展开。例如,如何解决遮挡问题,或者传统算法与深度学习的对比。 现在需要确保回答结构清晰,分步骤说明原理,并给出实现步骤和示例代码,同时引用提供的资料。比如,在代价聚合部分提到动态规划,可以引用[4]。在提到ELAS算法时,虽然它属于传统改进,但用户可能想了解传统方法,所以需要明确区分。 需要检查是否有遗漏的关键点,比如相机标定和极线校正的重要性,这在引用[2]中提到,是预处理步骤的一部分。因此在实现步骤前,必须进行图像校正,使对应点位于同一行,如引用[4]所述。 可能还需要提到常用的算法如BM(块匹配)、SGBM(半全局块匹配),这些在OpenCV中有实现,方便用户参考。但用户可能希望自己实现,所以需要解释基本原理。 总结,回答应包括: 1. 双目立体匹配的基本原理,包括四个步骤。 2. 各步骤的详细说明,结合引用内容。 3. 实现步骤,包括预处理、算法核心。 4. 代码示例,可能是一个简化的动态规划或SAD方法。 5. 算法优缺点和应用场景。 6. 相关问题。 需要注意使用正确的中文,数学公式用$$...$$,行内用$...$,确保LaTeX正确。例如,视差d与深度Z的关系公式需要正确呈现。 现在开始组织内容,确保每个部分引用正确的资料,并在末尾添加相关问题。</think>### 传统双目立体匹配算法原理与实现 #### 一、双目立体匹配基本原理 双目立体匹配的目标是从左右视图的对应像素点中计算视差(disparity)$d$,进而通过三角测量公式计算深度$Z$: $$ Z = \frac{f \cdot B}{d} $$ 其中$f$为焦距,$B$为基线距离(两摄像机间距)[^1]。 #### 二、传统算法核心步骤 1. **匹配代价计算** 计算左右图像中像素的相似性。常用方法: - **SAD(绝对差值和)**:$C_{\text{SAD}}(x,y,d) = \sum_{(i,j)\in W} |I_L(x+i,y+j) - I_R(x+i-d,y+j)|$ - **SSD(平方差和)**:$C_{\text{SSD}}(x,y,d) = \sum_{(i,j)\in W} (I_L(x+i,y+j) - I_R(x+i-d,y+j))^2$ - **NCC(归一化互相关)**:$C_{\text{NCC}}(x,y,d) = \frac{\sum (I_L - \mu_L)(I_R - \mu_R)}{\sqrt{\sum (I_L - \mu_L)^2 \sum (I_R - \mu_R)^2}}$[^2] 2. **代价聚合** 通过局部全局方法优化代价矩阵: - **局部方法**:对窗口内代价求和(如均值滤波)。 - **全局方法**:动态规划(在极线约束下寻找最优路径)[^4]、图割(最小化能量函数)。 3. **视差计算** 使用**赢者通吃(WTA)**策略选择最小代价对应的视差: $$ d_{\text{best}} = \arg\min_d C(x,y,d) $$ 4. **视差优化** - **左右一致性检查**:剔除遮挡区域。 - **亚像素细化**:二次插值提升精度。 - **中值滤波**:平滑噪声。 #### 三、实现步骤与代码示例 1. **预处理** - 相机标定与极线校正,使匹配点位于同一水平行。 2. **动态规划实现(简化版)** ```python import numpy as np def compute_disparity(left_img, right_img, max_d=64): h, w = left_img.shape disparity = np.zeros((h, w)) for y in range(h): # 初始化代价矩阵和路径表 cost = np.zeros((w, max_d)) path = np.zeros((w, max_d), dtype=int) for x in range(w): for d in range(max_d): if x - d >= 0: cost[x, d] = abs(int(left_img[y, x]) - int(right_img[y, x - d])) else: cost[x, d] = float('inf') # 动态规划递推 for x in range(1, w): for d in range(max_d): min_prev = min(cost[x-1, max(0, d-1):min(max_d, d+2)]) cost[x, d] += min_prev path[x, d] = np.argmin(cost[x-1, max(0, d-1):min(max_d, d+2)]) # 回溯最优路径 best_d = np.argmin(cost[-1, :]) for x in reversed(range(w)): disparity[y, x] = best_d if x > 0: best_d = path[x, best_d] return disparity ``` #### 四、优缺点与应用 - **优点**:计算可控,硬件资源需求低。 - **缺点**:对纹理缺失、重复纹理敏感,依赖极线校正精度。 - **应用**:工业检测(零件尺寸测量)、机器人导航[^3]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EwenWanW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值