基於Opencv的幾種立體匹配演算法 ELAS

2021-07-25 05:12:39 字數 2549 閱讀 8142

同類似,採用

這兩個經典的進行測試。

關於bm和sgbm以及var的引數設定請參考

晨宇思遠

本文**基於opencv2.4.9

本文原始碼位址在我的csdn**資源:

0:elas

int stereomatch::elasmatch()

;cv::mat leftdpf = cv::mat::zeros(cv::size(leftimage.cols,leftimage.rows), cv_32f);

cv::mat rightdpf = cv::mat::zeros(cv::size(leftimage.cols,leftimage.rows), cv_32f);

elas::parameters param;

param.postprocess_only_left = false

; elas elas(param);

elas.process(leftimage.data,rightimage.data,leftdpf.ptr(0),rightdpf.ptr(0),dims);

cv::mat(leftdpf(cv::rect(bd,0,leftimage.cols,leftimage.rows))).copyto(disp_l);

cv::mat(rightdpf(cv::rect(bd,0,rightimage.cols,rightimage.rows))).copyto(disp_r);

//-- check its extreme values

cv::minmaxloc( disp_l, &minval, &maxval );

cout<

<< minval

//-- display it as a cv_8uc1 image

disp_l.convertto(disp8u_l, cv_8u, 255/(maxval - minval));//(numberofdisparities*16.)

cv::minmaxloc( disp_r, &minval, &maxval );

cout<

<< minval

//-- display it as a cv_8uc1 image

disp_r.convertto(disp8u_r, cv_8u, 255/(maxval - minval));//(numberofdisparities*16.)

cv::normalize(disp8u_l, disp8u_l, 0, 255, cv_minmax, cv_8uc1); // obtain normalized image

cv::normalize(disp8u_r, disp8u_r, 0, 255, cv_minmax, cv_8uc1); // obtain normalized image

cv::imshow("left",leftimage);

cv::imshow("right",rightimage);

cv::imshow("elas_left",disp8u_l);

cv::imshow("elas_right",disp8u_r);

cv::imwrite("elas_left.png",disp8u_l);

cv::imwrite("elas_right.png",disp8u_r);

cout

cv::waitkey(0);

return0;

}

1:bm演算法

gc好像只有在c版本的,我這裡做了兩個,乙個是c的,乙個是改了介面的c++版本的。

立體匹配 立體匹配過程

立體匹配就4個步驟 匹配代價計算,代價聚合,計算視差,視差精化 匹配代價計算 一般是通過計算左右兩圖對應畫素3個通道的灰度值差來決定匹配代價的,常用的就是基於畫素點匹配代價計算,一般有ad,sd,tad什麼的,基於區域的匹配代價計算一般有sad,ssd,stad之類的。匹配代價計算會生成乙個disp...

OpenCV開發之五 立體匹配

方法一 關鍵看匹配函式,不同版本對應的函式可能發生變化 include cv.h include cvaux.h include cxcore.h include highgui.h reference opencv1.1 cvref.htm by gong peiliang in sia,cas ...

雙目立體匹配

公式 其中資料項描述了匹配程度,平滑項體現了定義場景的約束,c是匹配代價 或稱penalty p是不同兩畫素p和q視差的函式,一般稱之為平滑項 考慮到能量優化問題在一維空間的複雜度是多項式級的,因此一些研究試圖做一些近似來降低演算法的複雜度。例如,半全域性演算法 sgm 就利用了這一特性將二維問題簡...