双目视觉立体匹配--SGM


1. 获取深度信息

  1. 工作平台 VS2019 + opencv3.1.0
  2. img_left + img_right → disparity map → depth map
  3. 准备工作
    在这里插入图片描述

2. SGM

学习参考链接: https://ethanli.blog.csdn.net/article/details/105065660
代码下载 百度网盘:https://pan.baidu.com/s/1HhpQ_VQqBes1xRY-Klg5gw
提取码:vay5


2.1 代价计算

  1. 代价计算 sgm1 实验结果:
    在这里插入图片描述

2.2 路径聚合

2.2.1 实验结果

  1. 四路径聚合 sgm2 实验结果:在这里插入图片描述

  2. 八路径聚合 sgm3 实验结果:
    在这里插入图片描述

2.2.2 遇到的问题

  1. 0xC0000005: 写入位置0x0000000000000000时发生访问冲突

0xC0000005: 写入位置0x0000000000000000时发生访问冲突
解决方法:空指针即没有对指针赋值 使用 new delete 为指针开辟内存空间和释放内存

uint8* cost_aggr_1_;
sgm_util::CostAggregateLeftRight(img_left_, width_, height_, min_disparity, max_disparity, P1, P2_Init, cost_init_, cost_aggr_1_, true);
// 解决方法:对指针 cost_aggr_1_ 进行初始化
cost_aggr_1_ = new uint8[width * height * disp_range]();
if (cost_aggr_1_ != nullptr) { delete[] cost_aggr_1_;
		                       cost_aggr_1_ = nullptr; }		                       
  1. 代价计算的初值由初始代价值换算为聚合后的代价值
void SemiGlobalMatching::ComputeDisparity() const
{    ...
     auto cost_ptr = cost_aggr_;
     ...  }

2.3 视差优化

2.3.1 实验结果

  1. 子像素拟合 sgm4 实验结果:
    在这里插入图片描述
  2. 左右一致性检查 sgm5 实验结果:
    在这里插入图片描述
  3. 唯一性约束 sgm6 实验结果
    在这里插入图片描述
  4. 剔除小连通区 sgm7 实验结果
    在这里插入图片描述
  5. 中值滤波 sgm8 实验结果
    在这里插入图片描述

2.3.2 数据流图

  1. 子像素拟合
    在这里插入图片描述
  2. 左右一致性检查在这里插入图片描述

2.4 视差填充

2.4.1 实验结果

  1. 视差填充 sgm9 实验结果
    在这里插入图片描述

2.5 视差图

  1. 视差图 sgm10 实验结果
    在这里插入图片描述
  2. 视差图-伪彩 sgm10 实验结果
    在这里插入图片描述
  3. 各步骤运行时间 sgm10 实验结果
    在这里插入图片描述
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值