Bonjour,

Je voudrait utiliser deux caméras pour obtenir une depth map avec la vision stéréo. D'après ce que j'ai lu, afin d'optimiser la détection des correspondances, on doit calculer des matrices qui vont permettre de faire comme si les deux caméras étaient alignées. Je me suis inspiré du code d'exemple d'opencv pour la calibration de caméra.

C'est lors de cette étape que j'ai un problème. Je place mes deux caméras les plus alignées possibles. Je prend ensuite une image avec chaque caméras, j'utilise cvFindChessboardCorners pour trouver les échéquiers dans chaque image, puis j'utilise cvFindCornerSubPix pour améliorer la précision. J'enregistre ces résultats dans une liste, une pour la caméras de droite et une pour la caméra de gauche.

Après, je met la position théorique des croisements de l'échéquier dans une liste, ligne par ligne et pour chaque image. Je crée les matrices nécessaires et j'appelle cvStereoCalibrate, puis cvStereoRectify. Enfin, j'appelle cvInitUndistordRectifyMap avec les matrices de chaque caméra et je stocke le résultat dans les matrices mx1, my1, mx2 et my2.

Lors d'une détection de distance, j'appelle cvRemap sur chaque image avec ces matrices. Cependant mes images sont complètement déformées et inutilisables. J'aimerais donc savoir si ce que je fait vous parait correct, et éventuellement comment vous feriez à ma place. Vous pouvez trouver mon code sur github.

Merci d'avance.