-
Stereovision et Distance
Bonjour je travail actuellement sur un système de stereovision et je cherche à obtenir la distance d'un objet.
Les cameras sont l'une à coté de l'autre et leur centre optique est séparé de 7cm.
J'utilise OpenCV mes je doit pas utiliser de calibrage.
Je détecte l'objet sur les deux caméra ,j'ai donc 2 points x1,y1 et x2,y2.
Maintenant j'aimerai connaitre la formule qui me permettrai de connaitre la distance entre les caméras et ce point.
J'ai donc essayé la formule z=-B/d que j'ai trouvé dans [ame="http://www.scribd.com/doc/7066915/Computer-Vision-A-Modern-Approach-by-Forsythe-Ponce"]Computer Vision - A Modern Approach by Forsythe Ponce[/ame] (page340)
d: étant la disparité x2-x1
B: la distance entre le deux centre optiques
Mes cameras on une résolution de 320 par 240.
Par exemple j'ai x1=166 et x2= 110
Je fait donc distance=-7/(110-166)
Mais je sent bien que je commet des erreurs.
Notamment je me demande si en divisant 7 une distance par une somme de pixels je peut obtenir une distance, a moins que la disparité soit un rapport!
Ensuite es que le centre optique est bien aligné avec le centre de l'image en 160X120? Et es-que l'image n'est pas ensuite retourné numériquement?
Je suis plutôt perdu.
Donc si quelqu'un pourrais m'expliquer clairement je lui serai très reconnaissant.
Merci d'avance.
-
Salut
en effet, ta formule n'est pas homogène, puisque tu divise des mètres par des pixels, ce qui est incorrect.
Pour que cela fonctionne, tu as besoin des paramètres intrinsèques des caméras, et notamment des facteurs d'agrandissement Ku et Kv en pixels par mètre.
Si tu ne connais pas ces paramètres, tu ne peux les obtenir que par calibrage. Si tu ne peux pas calibrer, tu devras te contenter de prendre un facteur d'agrandissement arbitraire. Les distances obtenues seront fausses d'un point de vue physique, mais les proportions seront respectées et la stéréoscopie tout de même exploitable.