OpenCV三種立體匹配求視差圖演算法總結

來源:互聯網
上載者:User

 

對OpenCV中涉及的三種立體匹配演算法進行代碼及各自優缺點總結:

首先我們看一下BM演算法:

該演算法代碼:

 

CvStereoBMState *BMState = cvCreateStereoBMState();<br />int SADWindowSize=15;<br /> BMState->SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 9;<br /> BMState->minDisparity = 0;<br /> BMState->numberOfDisparities = 32;<br /> BMState->textureThreshold = 10;<br /> BMState->uniquenessRatio = 15;<br /> BMState->speckleWindowSize = 100;<br /> BMState->speckleRange = 32;<br /> BMState->disp12MaxDiff = 1;<br /> cvFindStereoCorrespondenceBM( left, right, left_disp_,BMState);<br /> cvNormalize( left_disp_, left_vdisp, 0, 256, CV_MINMAX );<br />

 

其中minDisparity是控制匹配搜尋的第一個參數,代表了匹配搜蘇從哪裡開始,numberOfDisparities表示最大搜尋視差數uniquenessRatio表示匹配功能函數,這三個參數比較重要,可以根據實驗給予參數值。

該方法速度最快,一副320*240的灰階圖匹配時間為31ms,視差圖如下。

第二種方法是SGBM方法這是OpenCV的一種新演算法:

 

cv::StereoSGBM sgbm;<br /> sgbm.preFilterCap = 63;<br />int SADWindowSize=11;<br />int cn = 1;<br />sgbm.SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 3;<br />sgbm.P1 = 4*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;<br />sgbm.P2 = 32*cn*sgbm.SADWindowSize*sgbm.SADWindowSize;<br />sgbm.minDisparity = 0;<br />sgbm.numberOfDisparities = 32;<br />sgbm.uniquenessRatio = 10;<br />sgbm.speckleWindowSize = 100;<br />sgbm.speckleRange = 32;<br />sgbm.disp12MaxDiff = 1;</p><p>sgbm(left , right , left_disp_);<br />sgbm(right, left , right_disp_); 

 

各參數設定如BM方法,速度比較快,320*240的灰階圖匹配時間為78ms,視差效果如。

第三種為GC方法:

 

CvStereoGCState* state = cvCreateStereoGCState( 16, 2 );<br /> left_disp_ =cvCreateMat( left->height,left->width, CV_32F );<br /> right_disp_ =cvCreateMat( right->height,right->width,CV_32F );<br /> cvFindStereoCorrespondenceGC( left, right, left_disp_, right_disp_, state, 0 );<br /> cvReleaseStereoGCState( &state ); 

 

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

各方法理論可以參考文獻。

 

出處:http://blog.csdn.net/mailang2008/archive/2010/09/09/5873883.aspx

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.