Bonsoir à tous,
Est-ce qu'il y a un code simple avec openCv pour faire la stéréo-vision entre deux images?
Merci d'avance
Bonsoir à tous,
Est-ce qu'il y a un code simple avec openCv pour faire la stéréo-vision entre deux images?
Merci d'avance
Bonjour, tu as des fonction toute faite,une avec la méthode locale:
cvStereoBM();
ou une optimisation globale
cvStereoGC, beaucoup plus lent.
Tu peux trouver des exemples sur le site.
Merci
j'ai utilisé les 2 fichiers stereo_calib.cpp et stereo_match.cpp qui se trouve sous le répertoire \OpenCV2.4.2\opencv\samples\cpp avec les images fournis dans le même repertoire,
la fonction stereo_match.cpp utilise la fonction stereoBM,
cet exemple donne une bonne carte de disparité par contre la carte de profondeur, qui est enregistrée sous format point cloud .xyz, est très pauvre.
y a t'il une solution?
Salut, il me semble que la carte de profondeur est estimé à partir de la carte de disparité et des paramètre de la caméra (focal + baseline) donc si ta carte de disparité est bonne ça doit être tes paramètres qui sont mauvais.
Tu peux poste ta carte de disparité?
Bon courage.
Salut,
Je met permet de poster dans ce post car je pense avoir un problème très similaire.
J'ai une jolie carte de disparité mais la carte de profondeur que je rend avec scilab et le fichier de points rendu par l'exemple "stereo_match.cpp" est extrêmement pauvre.
Sur les PJ vous pouvez voir ma carte de disparité (qui m'est très satisfaisante pour ce que j'ai à faire) et mon rendu de points cloud.
Voici les appels aux fonctions que je fais après avoir préparé le terrain comme il se doit (images rectifiées ...):
bm(img1, img2, disp, CV_32F);
disp.convertTo(disp8, CV_8U);
imwrite(disparity_filename, disp);
==> donne depthmap.jpg
reprojectImageTo3D(disp8, xyz, Q, true);
bm(img1, img2, disp);
imwrite(disparity_filename, disp);
==> donne depthmap2.jpg
reprojectImageTo3D(disp, xyz, Q, true);
Comme vous pouvez le constater ce n'est pas très clair pour moi, et donc si quelqu'un a une piste pour moi, même de la doc, parce que là je tourne en rond et les docs que je trouve ne m'apporte pas grand chose.
Merci !
Je pense que le problème est plus lié à la méthode utilisée plutôt qu'à opencv.
A moins d'avoir un modele de ce que l'on observe, je ne connais pas d'algo qui permette d'avoir une vrai carte de profondeur en utilisant des points d'appariement...
Ou alors faut fait comme les mecs de chez Intellisence (ceux qui ont fait la Kinnect)
Pour info, la Kinect c'est PrimeSense
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager