在opencv中的实现为semi-global block matching(SGBM)讲解

SGBM是一种基于双目视觉的半全局匹配算法,用于计算disparity图。它通过设置全局能量函数并最小化该函数来确定每个像素的最佳视差。SGBM通过动态规划解决一维问题,考虑8个邻域计算最小cost值,选取最小累计cost作为像素的最终视差。算法的时间复杂度与视差范围相关。参数包括最小视差、视差搜索范围、窗口大小、惩罚系数P1和P2等。

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

semi-global matching算法是SGM的缩写,是一种基于计算机双目视觉中的disparity(视差)的半全局匹配算法,在opencv中的实现为semi-global block matching(SGBM)。

SGBM的思路:
通过选取每个像素点的disparity,组成一个视差图(disparity map),设置一个和视差图相关的全局能量函数,使这个能量函数最小化,以达到求解每个像素最优disparity (视差)的目的 。
能量函数的形式如下
在这里插入图片描述
D指disparity map。 E(D)是该disparity map 对应的能量函数。
p,q 代表图像中的某个像素。
Np指像素p的相应像素点。
C(p,Dp)指当前像素点disparity为Dp时,该像素点的cost(损失)。
P1是一个惩罚系数,它适用于像素p相邻像素中disparity值与disparity值相差1的那些像素。
P2是一个惩罚系数,它适用于像素p相邻像素中disparity值与p的disparity值相差大于1的那些像素。
I[.]函数返回1如果函数中的参数为真,否则返回0。

利用上述函数在一个二维图像中寻找最优解是一个NP-complete问题,耗时过于巨大,因此该问题被近似分解为多个一维问题,即线性问题。而且每个一维问题都可以用动态规划来解决。因为1个像素有8个相邻像素ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值