1. 程式人生 > >1.雙目視覺官方例項-stereo_calib.cpp、stereo_calib.xml 和 stereo_match.cpp以及26張圖片

1.雙目視覺官方例項-stereo_calib.cpp、stereo_calib.xml 和 stereo_match.cpp以及26張圖片

1.找到目錄   ...\OpenCV\sources\samples\cpp下的 stereo_calib.cpp、stereo_calib.xml 和 stereo_match.cpp以及26張圖片了(left01-14   right01-14)。

其中,stereo_calib.cpp是使用張正友的方法進行雙目標定,stereo_calib.xml 是輸入圖片的列表,stereo_match.cpp是立體匹配、計算視差的部分

如圖所示:

 

2.先執行stereo_calib.cpp,可以得到 intrinsics.yml和 extrinsics.yml 檔案

步驟:新建專案,匯入現有項,在main()函式下加入程式碼:

argc = 6;

argv[0] = "binocularStereoVision";//專案名稱

argv[1] = "-w";

argv[2] = "9";

argv[3] = "-h";

argv[4] = "6";

argv[5] = "stereo_calib.xml";

如圖所示:

 

然後,將資原始檔stereo_calib.xml 以及26張圖片 放入資料夾 ...\binocularStereoVision\binocularStereoVision (否則編譯器找不到檔案哈)

 

執行結果如圖:並且在剛才的資料夾下多出  intrinsics.yml和 extrinsics.yml 檔案(用於stereo_match.cpp計算視差)

 

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

接下去執行 stereo_match.cpp ,方法大同小異。

新增輸入引數的程式碼:在main()函式里加入

        argc = 8;
argv[0] = "demoDCamera";//用專案名稱,我的是demoDCamera
argv[1] = "left01.jpg";
argv[2] = "right01.jpg";
argv[3] = "--algorithm=bm";
argv[4] = "-i";
argv[5] = "intrinsics.yml";
        argv[6] = "-e";
argv[7] = "extrinsics.yml";

新增資原始檔:在...\demoDCamera\demoDCamera(專案名稱,我的是demoDCamera)資料夾下放入26張圖片,以及 intrinsics.yml和 extrinsics.yml 檔案(之前得到的結果哈)如圖所示:

 

執行結果如下:得到視差並顯示(第三幅)