2009-10-29 30 views
2

J'ai pris 2 images avec un point de croisement et maintenant je suis en train de comparer ces 2 images et de savoir quelle est la distance et l'angle déplacé. Comment puis-je utiliser MATLAB pour faire cela? Merci beaucoup!point de croisement entre 2 images dans Matlab

Pic3 Pic2

+1

Pouvez-vous télécharger les images? Essayez-vous de trouver la position du "point de croix" dans les deux images? – Jacob

+0

http://www.flickr.com/photos/[email protected]/4054392111/ http://www.flickr.com/photos/[email protected]/4055134756/ Bonjour, les 2 images sont ici. J'essaie de trouver la position et aussi combien le "point de croisement" s'est déplacé dans Pic 3 comparé au Pic 2. Merci! – Veronica

+0

Avez-vous toujours cette cible croisée, ou allez-vous avoir quelque chose d'autre dont vous avez besoin? – endolith

Répondre

1

Harmoniser deux images de la même scène est calledimage registration. Si vous avez accès au traitement d'image Boîte à outils, vous pouvez y trouver un certain nombre de functions-help you.

Jetez un oeil à ces image registration demos.

+0

Bonjour, je suis en mesure d'obtenir le changement d'angle mais je ne peux pas obtenir la traduction x et y. Merci. – Veronica

+1

peut-être si vous mettez à jour votre question pour nous montrer ce que vous avez fait jusqu'à présent, nous pourrions vous aider ... – Amro

+0

BTW si vous inversez la transformation de rotation, vous pouvez trouver la traduction en utilisant la méthode de corrélation croisée le troisième exemple) – Amro

0

corrélation croisée (Wikipedia appelle Phase correlation) ne fonctionnera pas si les images sont mises en rotation. Cependant, il y a un related method based on log-polar coordinates qui fonctionnera indépendamment de la rotation, de l'échelle, du cisaillement et de la traduction.

Cette méthode serait préférable si vous deviez faire correspondre des images arbitraires. Il est préférable de faire correspondre des formes connues ou des lignes sombres avec d'autres méthodes.

0

Si ces lignes noires sont toujours dans les images, et elles sont presque parfaitement droites (ne pas être déformées en courbes), une meilleure méthode serait d'utiliser le Hough transform ou Radon transform (sorte de façons différentes de penser à faire la même chose) pour trouver seulement les deux lignes noires, puis comparer leurs positions.

Vous souhaitez inverser les premières images, de sorte que les lignes sont blanches lumineuses (grandes valeurs), puis effectuez la transformation de Hough. La sortie pour chaque image sera deux points blancs brillants, à partir de laquelle vous pouvez faire une détection de crête. La coordonnée de chaque pic vous indique l'angle et le décalage de la ligne.

Je n'ai pas fait cela dans Matlab, mais je vois un certain nombre d'exemples et de la documentation:

+0

Idée intéressante. BTW pourquoi poster deux réponses, il suffit d'éditer votre premier et ajouter le second comme une solution alternative ... – Amro

+0

Donc, les gens peuvent voter sur lequel est le meilleur, laisser des commentaires se rapportant à un seul, etc N'est-ce pas le point de la site? – endolith