您的位置:首页 > 运维架构

OpenCV三种立体匹配求视差图算法总结

2016-01-27 17:46 483 查看
【原文:http://blog.csdn.net/mailang2008/article/details/5873883

对OpenCV中涉及的三种立体匹配算法进行代码及各自优缺点总结:

首先我们看一下BM算法:

该算法代码:

[cpp] view
plaincopy

CvStereoBMState *BMState = cvCreateStereoBMState();  

  

int SADWindowSize=15;   

 BMState->SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 9;  

 BMState->minDisparity = 0;  

 BMState->numberOfDisparities = 32;  

 BMState->textureThreshold = 10;  

 BMState->uniquenessRatio = 15;  

 BMState->speckleWindowSize = 100;  

 BMState->speckleRange = 32;  

 BMState->disp12MaxDiff = 1;  

 cvFindStereoCorrespondenceBM( left, right, left_disp_,BMState);  

   cvNormalize( left_disp_, left_vdisp, 0, 256, CV_MINMAX );  

其中minDisparity是控制匹配搜索的第一个参数,代表了匹配搜苏从哪里开始,numberOfDisparities表示最大搜索视差数uniquenessRatio表示匹配功能函数,这三个参数比较重要,可以根据实验给予参数值。

该方法速度最快,一副320*240的灰度图匹配时间为31ms,视差图如下。

 



第二种方法是SGBM方法这是OpenCV的一种新算法:

[cpp] view
plaincopy

cv::StereoSGBM sgbm;  

        sgbm.preFilterCap = 63;  

        int SADWindowSize=11;   

        int cn = 1;  

        sgbm.SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 3;  

        sgbm.P1 = 4*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;  

        sgbm.P2 = 32*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;  

        sgbm.minDisparity = 0;  

        sgbm.numberOfDisparities = 32;  

        sgbm.uniquenessRatio = 10;  

        sgbm.speckleWindowSize = 100;  

        sgbm.speckleRange = 32;  

        sgbm.disp12MaxDiff = 1;  

      

        sgbm(left , right , left_disp_);  

        sgbm(right, left  , right_disp_);  

 

各参数设置如BM方法,速度比较快,320*240的灰度图匹配时间为78ms,视差效果如下图。

 

 



第三种为GC方法:

[cpp] view
plaincopy

CvStereoGCState* state = cvCreateStereoGCState( 16, 2 );  

 left_disp_  =cvCreateMat( left->height,left->width, CV_32F );  

 right_disp_ =cvCreateMat( right->height,right->width,CV_32F );  

 cvFindStereoCorrespondenceGC( left, right, left_disp_, right_disp_, state, 0 );  

 cvReleaseStereoGCState( &state );  

该方法速度超慢,但效果超好。

 



 

各方法理论可以参考文献。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: