0

J'essaye d'obtenir la carte de disparité des images stéréo. Lorsque j'essaie stereo_match.cpp avec les images ci-dessous, l'image du résultat est plus petite à partir des images originales et il manque la gauche de l'image.OpenCV 3.3 redistribution des cartes de disparité retourné résultat de taille plus petite

S'agit-il de paramètres? Quelle est la raison et comment peut-il le résoudre?

Comment puis-je améliorer le résultat en changeant les paramètres ou d'autres choses?

Voici les paramètres:

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

Répondre

1

Voici l'explication théorique de la disparité mapcreation:

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

Afin de créer la disparité ou d'une carte de profondeur, il devrait être un objet visible sur les deux caméras. Dans votre exemple, la carte de disparité montre le champ de vision commun des caméras.

Si vous souhaitez obtenir ce champ de vision, vous pouvez rapprocher la caméra l'une de l'autre mais cela a un coût. Vous aurez moins de précision dans la dimension z et plus de bruit.