salut à tous
voila, j'au une question à vous posez!!est ce que vous savez comment faire pour comparer deux images soit une image à niveau de gris ou une image couleur???
please helpe
-----
salut à tous
voila, j'au une question à vous posez!!est ce que vous savez comment faire pour comparer deux images soit une image à niveau de gris ou une image couleur???
please helpe
Qu'entends-tu par comparer ?
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
salut
je m'explique: j'ai une image de réference et j'ai plusieurs images qui sont soit identiques ou presque identique avec l'image de reference.je veux les comparer l'image de réference
Bonjour
Ca fait longtemps que je n'ai plus fait de Matlab mais il me semble qu'il existe des outils calculant des indices de corrélation.
Tu as cherché dans cette direction?
salut JPL
merci pour l'idée mais je cherche autre chose que faire la différence.
salut vince
je trouve que c interessant les indices de corellation.mais est ce que tu peux expliquer plus.
merci
Comme je m'étais aperçu immédiatement que ma suggestion n'était pas bonne je l'ai effacée : tu l'as donc vue pendant les 2 minutes où elle était sur le forum !Envoyé par kiri43salut JPL
merci pour l'idée mais je cherche autre chose que faire la différence.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
salut kiri43
je pense aussi que la corrélation c'est la meilleure solution et il y a des fonctions toute faites pour ca
en gros ca donne une valeur qui est maximale quand les deux images sont identiques
c'est trés efficace lorsque tu veux 'voir' le décalage entre deux images (la position du max de ta matrice te donne la translation entre les deux images)
mais c quoi les différences entre tes images???
asgrim
salut jpl
ton idée est bonne, et c marche pour certaines images.mais je cherche des métodes plus précises et qui peuvent donner plus de précision.
marci
salut asgrim
si j'ai compris bien compris, la correlation est une méthode mathématique qui permet de calculer la différence entre les valeurs de deux matrices.
est ce que vous avez une idée sur le code de ces foctions de correlation en matlab?est ce qu'elles sont déja programmées?
merci
bon la je m'en vais
mais normallement elles sont programmées
sinon c pas trés compliqué, c'estb une histoire de fft et fft inverse
et puis quelques crecentrage aussi
si personne te renseigne d'ici ma prochaine connexion je jeterai un oeil et kje te répondrait
va quand meme voir dans les toolbox de signal processing
je crois qu'elle y est
ils doivent te la mettre en lien aussi avec les fft
sino ca ne mesure pas la différence au sens '-'
avec ca on peut détecter un avion dans une image floutée
grosso modo tu voit un truc gris genre image tv sans antenne
tu fais la correlation avec l'image de ton avion
et tu as un point blanc dans ton image qui correspond à la position de ton avion
la formule c'est je croit un truc du genre
coor(t)=integrale de( f(t-t')*h(t')dt')
mais l'ordre des variable n'est peut etre pas le bon
et pis y a la convolution qui ressemble
cherche des cours de traitement de signal sur le net, tu devrais trouver des expliquation en numérique en plus
thco
asgrim
en fait il te suffit d'utiliser la fonction xcorr, xcorr2 ou normxcorr2. ca te trouve le vecteur déplacement entre 2 image. si tu veux simplement le coeff de correlation utilise corr2. par contre, il faut que tu passe ton image couleur en gris .
en ce moment je dois justement creer une interface graphique dans laquelle je dois mesurer le déplacement d'une coulée de Fluide en utilisant justement normxcorr2 qui fait la cross correlation
Le PB c'est que je trouve très souvent un vecteur nul.
Est ce que quelqu'un sait quelle est la précision de la fonction de correlation? Est ce que mon déplacement est trop petit ?
Toi tu trouve un vecteur dejaje trouve très souvent un vecteur nul
Excusez mon ignorance mais la moi je ne comprend pas du tout comment vous trouvez ce vecteur...
Dans mon cas j'ai deux nuages de points non ordonnes dans deux matrice 2*n et 2*m
Je cherche le meilleur vecteur translation pour passer d'un a l'autre... comme dit dans l'aide la fonction xcorr2 me donne une matrice de dimension 3*n+m-1...
Mais a partir de la je ne sais pas comment on obtient le vecteur et comment l'appliquer ensuite...
Merci d'eclairer ma laterne...
Si ce que tu veux, c'est comparer deux images pour voir un déplacement, tu peux obtenir les valeur RVB (sur 255 je crois) pour chacun des pixels. à partir de ses valeurs, tu peux obtenir des courbes de la distribution des couleurs sur une ligne ou une colonne, et ensuite tu calcules aisément le décalage entre les 2 Gaussiennes.
On avait utilisé ça pour obtenir le déplacement d'une tache de laser sur un capteur de webcam (pour l'expérience de foucault sur la vitesse de la lumière). Tu obtiens une précision du décalage de l'ordre de 2 ou 3 pixels
Le programme était très simple, 3 min de calcul pour un ligne de 1024 pixels. Après pour une image entière... faut avoir la patience ou le PC qui suit !
Je sais pas trop si ma réponse est HS après...
Non ce n'est pas exactement ce que je veux je m'explique....
- J'ai un vehicule autonome qui effectue un scan de son environnement sur 180°. Pour chaque angle j'ai une mesure de distance. Pour deux scans successifs j'ai donc deux sets de données
- De ces 2 sets de donnees je cree deux images de taille identiques dont l'une est approcimativement issue d'une rota-translation de la premiere car entre ces deux mesures mon vehicule autonome a bien entendu effectué un deplacement elementaire.
Il est a noter que j'ai transformer les images en niveau de gris pour simplifier les calculs et que probablement je passerai en N&B lorsque mes algorithmes seront suffisament robustes.
Donc par diverses theories mathematiques (transformee de Hough notamment) et comparaison de spectre (qui est invariant en fonction de la translation) j'arrive a trouver la rotation a effectuer pour obtenir deux images "paralleles".
Mon souci reste la translation... je ne trouve pas de methodes pour trouver la meilleure correlation entre mes deux images pour en extraire le vecteur translation. Les fonctions xcorr, xcorr2 ne semblent pas marcher. Je me retrouve tout con car je bloque sur ce que je pensais être le plus simple... ou alors j'ai l'esprit trop tordu pour voir la super methode ultra simple qui se ballade quelque part...
PS --> Le tout sachant que je n'ai pas le toolset de traitement d'image et que je ne veux pas l'utiliser car je dois tout implanter sur microcontroleur ensuite... enfin bref pour le moment je ne cherche qu'un algorithme
Donc bref comment trouver le vecteur translation (ou mieux les differentes hypotheses de vecteurs translations) qui permettrait de superposer deux images?
Merci
salut ,
je ne sais rien de votre sujet mais,
saviez vous un site reference sur les algorithme de traitement d'image?