雙目視覺之 SGBM 各個函數的參數的介紹,淡定的CrazyDog


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_);  

  下面我簡要介紹一下各個參數的意義

minDisparity -最小的是視差,一般設置為0

numDisparities 最大的視差,這個需要自己去定,這個數值比0大,而且要被16整除, 比如32 64

SADWindowSize  滑動窗口的大小,必須要大於1,一般取在3-11之間

P1   懲罰系數,用於控制圖像的平滑,具體需要看這個函數的算法,很多博客有介紹P1和P2的懲罰系數

P2   懲罰系數  

disp1MaxDiff  視差圖的像素點檢查,設置為1

uniquenessRatio 最好的代價方程值“贏了”第二好的代價方程值的概率,通常設置為5-15之間效果達到最佳

speckleWindowSize  針對散斑濾波的窗口大小,如果設置為0則不允許散斑濾波,否則設置為50-200之間

speckleRange-  相鄰像素點的視差值浮動范圍,通常設置為1-2就好了,這個系數會被乘以16輸入到程序中

fullDP  如果是尺寸比較大的圖片,這里設置為true,否則設置為false

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM