0

Ich versuche Disparitätenkarte von Stereobildern zu erhalten. Wenn ich versuche, stereo_match.cpp mit Bildern unten ist Ergebnis Bild kleiner von Originalbildern und links im Bild fehlt.OpenCV 3.3 rstelleneineskomplett Disparitätskarten kleinere Ergebnis zurückgegeben

Geht es um Parameter? Was ist der Grund und wie kann es gelöst werden?

Wie kann ich verbessern das Ergebnis mit Parametern oder andere Dinge zu ändern?

Hier sind Parameter:

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

Antwort

1

Hier theoretische Erklärung der Disparität mapcreation:

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

Um Disparität oder Tiefenkarte zu erstellen, sollte es ein Objekt sein, das auf beiden Kameras sichtbar ist. In Ihrem Beispiel zeigt Disparity Map das allgemeine Sichtfeld von Kameras an.

Wenn Sie das Sichtfeld incerase wollen Sie konnten einander bewegen Kamera näher, aber es hat einen Preis. Sie werden weniger Genauigkeit in der Z-Dimension und mehr Rauschen haben.

Verwandte Themen