Bonjour,
Je relance encore un sujet sur la stéréo désolé. Si mon projet marche à la fin je ferai un topic parce que c'est quand même pas simple ^^.
Je cherche à faire de la 3D alors pour ça je sais déja qu'il y a plusieurs étapes :
1) je calibre les caméras avec les chessboard et les fonction cvFindChessboardCorners, cvCalibrateCamera2... à la fin je me retrouve avec pour chaque caméra une matrice intrinsèque, une matrice de distortion, les points de l'image et les points de l'objet
2) Après ça je dois transformer mes images afin que les lignes épipolaires se retrouvent parallèles (i.e les épipoles à l'infini) j'ai deux choix :
a) soit j'utilise les matrices de distortions et intrinsèques calculées précédemment donc je me place dans le cas calibré : je vais utiliser la fonction cvStereoCalibrate et j'obtiens la matrice R de rotation entre mes deux caméras
b) soit j'utilise les matrices de points de l'image pour retrouver la matrice fondamentale F et je suis dans le cas non calibré : je vais utiliser la fonction cvStereoRectifyUncalibrate et j'obtiens les matrices d'homographies
Je ne suis pas trop sur mais je crois que l'on obtient la matrice R en faisant :
R= matriceintrinseque_gauche^(-1) * Hgauche * matriceintrinsèque_gauche
Mais je suis pas sur du tout de ça
quoiqu'il en soit une fois que j'ai eu R j'ai cherché la nouvelle map avec la fonction : cvInitUndistortRectifyMap
et je l'ai affiché avec remap .
Alors déja est ce que ce raisonnement est bon??
Pourrais -je avoir des précisions sur comment on obtient R à partir des deux matrices d'homographies.
Mon code compile et fonctionne (Merci snowpy)
Voila ce que j'obtiens :
ça c'est l'image de départ gauche
ça c'est l'image de départ droite
je cherche les coins comme ça :
et j'obtiens la calibration pour chaque caméra avec les matrices intrinsèques :
voila la j'ai fini l'étape 1 détaillée précédemment alors déja est-ce que vous voyez des trucs étranges?? (moi je sais pas trop ce que je dois voir...)
comme j'étais pas sur de ce que j'avais la je me suis mis dans le cas non calibré et j'ai juste utilisé les points trouvés dans l'image :
à la fin de l'atpe 2 et après remap j'obtiens ça :
![]()
je pense pas que ça soit bon ...
est ce que vous avez une idée d'ou ca peut venir...moi je pense du R.
Je peux poster le code si vous voulez mais la déja c'est un long message![]()
Merci beaucoup d'avance !!
![]()
Partager