生活随笔
收集整理的這篇文章主要介紹了
OpenCV三种立体匹配求视差图算法总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
FROM: http://blog.csdn.net/mailang2008/article/details/5873883
對OpenCV中涉及的三種立體匹配算法進(jìn)行代碼及各自優(yōu)缺點(diǎn)總結(jié):
首先我們看一下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是控制匹配搜索的第一個參數(shù),代表了匹配搜蘇從哪里開始,numberOfDisparities表示最大搜索視差數(shù)uniquenessRatio表示匹配功能函數(shù),這三個參數(shù)比較重要,可以根據(jù)實(shí)驗(yàn)給予參數(shù)值。
該方法速度最快,一副320*240的灰度圖匹配時(shí)間為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_);??
?
各參數(shù)設(shè)置如BM方法,速度比較快,320*240的灰度圖匹配時(shí)間為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?);??
該方法速度超慢,但效果超好。
?
?
各方法理論可以參考文獻(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的OpenCV三种立体匹配求视差图算法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。