Rectification D'Image
J'ai besoin de mettre en œuvre la rectification d'image .Le problème est donnée de l'image de l'objet à partir de quatre points de vue(topL,topR,bottomL,bottomR)j'ai besoin de faire des paires de rectification .J'ai essayé un peu de code dans OpenCV mais nai pas pu faire de progrès .Quelqu'un peut me dire un bon moyen(code source /tutoriel) pour exécuter la rectification? J'ai besoin d'utiliser le C/C++/OpenCV.
OriginalL'auteur Manish | 2010-11-23
Vous devez vous connecter pour publier un commentaire.
C'est une très vaste question, voici un aperçu général d'une manière que vous pourriez faire...
Trouver une forte caractéristiques ou coins sur les deux images à l'aide de
cvGoodFeaturesToTrack()
Passer les fonctionnalités trouvées dans
cvFindCornerSubPix()
pour obtenir plus de précision à virgule flottante, les représentations des lieux de forte caractéristiquesCalculer le flux optique entre les deux images à l'aide de la sous-pixel dispose de la dernière étape à l'aide de
cvCalcOpticalFlowPyrLK
ou d'un autre flux optique en fonction. (J'aimecvCalcOpticalFlowPyrLK()
)C'est là que ça devient délicat... afin de corriger des images, il est utile d'avoir quelques connaissances sur la valeur intrinsèque de la caméra properites (champ de vue, focale), surtout si vous envisagez de faire une sorte de reconstruction 3d ou de calcul de disparité de correspondance. Puisque vous n'avez rien dit au sujet d'une caméra calibrée configurer je vais continuer sur la non calibré algorithme.
Vous aurez besoin de trouver la Matrice Fondamentale qui code pour tous les aspects de la scène utilisée pour calculer une rectification de la matrice. Utilisation
cvFindFundamentalMatrix()
pour ce faire.Armé avec la Matrice Fondamentale, vous devez maintenant trouver la Matrice d'Homographie, qui correspondra à la fois des images à la même avion. Utilisation
cvStereoRectifyUncalibrated()
pour ce faire. Bien que son nom pourrait suggérer que c'est la rectification de vos images, il n'est PAS, elle retourne homographie matrices que vous pouvez UTILISER pour corriger vos images.Enfin, en utilisant l'Homographie de matrices à partir de la dernière étape, vous pouvez rectifier les deux images en appelant
cvInitUndistortRectifyMap()
pour obtenir un remappage de la matrice et de passer ensuite que danscvRemap()
pour faire le remappage.Je dois vous avertir qu'il y a de nombreux paramètres qui vont dans chaque de ces appels de bibliothèque et vous aurez à manipuler de nombreux matrices et de nombreux images, pour ne pas mentionner sans les intrinsèque de calibrage de la caméra de détails, vous aurez à faire de nombreuses hypothèses qui pourraient affecter considérablement vos résultats... Il n'est pas facile.
Je vous conseille d'acheter et/ou de lecture L'Apprentissage D'OpenCV si vous voulez en savoir plus, c'est bien au-delà de la portée d'un court paragraphe sur stackoverflow de s'attendre à apprendre tout cela 🙂
J' très doute que vous trouverez quelque chose que vous pouvez simplement " déposez dans votre code existant sans modification. Rechercher des exemples de Stéréo "Rectification" ou "Stéréo Calibrage", ceux-ci peuvent vous aider. Il serait également utile si vous expliqué ce que vous essayez de faire au lieu de simplement demander le code.
Nous essayons de faire quelques stéréo reconstruction donné des images d'un objet à partir de 4 points de vue.En particulier, nous tentons de mettre en place un papier (j'ai rajouté un lien pour le message original).Dans cette paires stéréo de rectification est qu'une petite partie donc j'ai voulu faire de cette partie assez rapidement.
Bonjour tbridge, je sais que c'est l'ancien forum, mais essayons tout de même. J'ai suivi toutes vos instructions, mais je suis coincé à un moment donné, comment dois-je calculer le "cameraMatrix" paramètre "cvInitUndistortRectifyMap" Merci
OriginalL'auteur tbridge
http://www.vision.caltech.edu/bouguetj/calib_doc/
peut-être que ce sera utile
OriginalL'auteur mrgloom
Il a été il ya longtemps que cette question a été publié, mais je pense qu'aujourd'hui la réponse peut être actualisée. Voici quelques conseils.
Selon la définition de rectification d'image qui est un processus de transformation de deux ou plusieurs images dans un même plan de l'image. Cela peut simplifier le problème de trouver des points de correspondance entre les images. De plus, il augmente les performances de nombreuses applications comme une carte de profondeur d'extraction.
Afin d'effectuer une rectification, il vous faut savoir extrinsèques de la caméra paramètres , intrinsèque des paramètres de la caméra et paramètres de distorsion. Tout d'abord exprimer les positions entre les caméras, d'autres transforment le pixel cadre coordonnées à l'image de la caméra, de coordonner, et le dernier est responsable de la suppression de la distorsion radiale. Vous trouverez ci-dessous quelques outils pour les estimations des paramètres:
Lorsque vous connaissez ces paramètres, vous pouvez enfin faire la rectification entre chaque appareil séparément:
OriginalL'auteur MichalSzczep