OpenCV3.0立体匹配算法对比研究(SGBM、BM、GC)

立体匹配算法对比研究

引言:基于OpenCV3.0,对BM、SGBM和GC算法进行了对比测试研究。由于SGBM算法视差效果好速度快的特点,常常被广泛应用和改进,本文针对SGBM算法主要参数设置作了对比测试,以供大家参考。

BM:Block Matching ,采用SAD方法计算匹配代价;

SGBM:  修改自Heiko Hirschmuller的《Stereo Processing by Semi-global Matching and Mutual Information》;

                 与原方法不同点:

  1.  没有实现原文中基于互信息的匹配代价计算,而是采用BT算法("Depth Discontinuities by Pixel-to-Pixel Stereo" by S. Birchfield and C. Tomasi);
  2.  默认运行单通道DP算法,只用了5个方向,而fullDP使能时则使用8个方向(可能需要占用大量内存);
  3.  增加了一些BM算法中的预处理和后处理程序;

GC:OpenCV3.0中没有实现,可以在OpenCV以下版本中找到。该方法效果是最好的,但是速度太慢,不能达到实时的匹配效率;

1、SGBM

主要参数:minDisparity 、numDisparities、blockSize、P1、P2。其他参数设置参照http://blog.csdn.net/zhubaohua_bupt/article/details/51866567

代码:

#include "stdafx.h"
#include "opencv2/opencv.hpp
using namespace std;
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
	Mat left = imread("imgL.jpg", IMREAD_GRAYSCALE);
	Mat right = imread("imgR.jpg", IMREAD_GRAYSCALE);
	Mat disp;

	int mindisparity = 0;
	int
  • 14
    点赞
  • 212
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值