2017-10-05 55 views
0

我想從立體圖像得到視差地圖。當我嘗試stereo_match.cpp下面的圖像時,結果圖像從原始圖像變小,圖像左側丟失。OpenCV 3.3 reating視差地圖返回較小尺寸的結果

是關於參數嗎?什麼原因以及如何解決它?

如何通過更改參數或其他內容來改善結果?

下面是參數:

Ptr<StereoSGBM> sbm = StereoSGBM::create(16, 64, 3, 48, 192, 0, 0,10,200,100); 
CV_WRAP static Ptr<StereoSGBM> create(int minDisparity = 0, int numDisparities = 16, int blockSize = 3, 
              int P1 = 0, int P2 = 0, int disp12MaxDiff = 0, 
              int preFilterCap = 0, int uniquenessRatio = 0, 
              int speckleWindowSize = 0, int speckleRange = 0, 
              int mode = StereoSGBM::MODE_SGBM); 

enter image description hereenter image description hereenter image description here

回答

1

這裏是差距mapcreation的理論解釋:

https://www.eecis.udel.edu/~grauerg/globalStereoPresCompVisionClass.pdf

爲了創建差異或深度圖,應該有成爲兩臺相機上可見的物體。在你的例子中,視差圖顯示了攝像機的常見視野。

如果您想突出顯示此視野,您可以將攝像頭彼此靠近,但它有成本。 z尺寸精度更低,噪音更大。