Comparaison des points de croisement entre 2 images dans MATLAB
-
10-07-2019 - |
Question
J'ai pris 2 images avec un point de croisement et maintenant j'essaie de comparer ces 2 images et de trouver quelle est la distance et l'angle déplacés. Comment puis-je utiliser MATLAB pour cela? Merci beaucoup!
La solution
L’alignement de deux images de la même scène est appelé enregistrement d'image . Si vous avez accès à la Boîte à outils de traitement d'image , vous pouvez y trouver un certain nombre de fonctions pour vous aider .
Consultez ces démonstrations d'enregistrement d'images .
Autres conseils
Si ces lignes noires sont toujours présentes dans les images et qu’elles sont presque parfaitement droites (sans déformation en courbes), une meilleure méthode consisterait à utiliser le Transformation de Hough ou Transformation du radon (différentes façons de penser à faire la même chose) pour ne trouver que les deux lignes noires, puis comparer leurs positions.
Vous devez d'abord inverser les images pour que les lignes soient d'un blanc éclatant (grandes valeurs), puis effectuer la transformation de Hough. La sortie pour chaque image sera deux points blancs brillants, à partir desquels vous pouvez effectuer 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 documentation:
- Démo de Hough Transformer en lignes droites (vous n'avez pas besoin de faire l'étape de détection de bord)
-
hough
,houghlines
etfonctions houghpeaks
La corrélation croisée (Wikipedia l’appelle corrélation de phase ) ne fonctionnera pas si les images sont en rotation. Cependant, il existe une méthode associée basée sur les coordonnées log-polaires cela fonctionnera quels que soient la rotation, l’échelle, le cisaillement et la translation.
Cette méthode serait préférable si vous devez faire correspondre des images arbitraires. Faire correspondre des formes connues ou des lignes sombres est préférable avec d’autres méthodes.