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

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个相邻像素,因此一般分解为8个一维问题。如下图所示

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值