La corrélation entre les 2 images
Je suis en train d'essayer de trouver la suite de la corrélation entre les deux images de f1 et f2, où la taille de l'image est PXP.
J'ai écrit une boucle de programme pour le même, mais je pense que d'une fonction intégrée de fonction serait plus rapide pour le même.
Dont la fonction matlab peut m'aider à calculer cela ?
Aussi si la taille des images sont M X N quelqu'un peut me dire comment cette formule va changer ou si la fonction sera en mesure de gérer.
EDIT:
Est-il plus rapide de la fonction de xcorr2 qui peut m'aider à voir que ça prend trop de temps quand j'ai besoin d'avoir seulement la valeur de corrélation la unshifted images....
si vous avez besoin de corrélation, c'est juste
dot product
entre deux tableaux f(:)
après centrage (moyenne et variance). C'est très rapide et se fait par corr2
: type edit corr2
de voir comment. si vous avez besoin de corrélation croisée, puis il y a xcorr2
ou imfilter
, mais ils ne peuvent pas être rapide, car le nombre de calculs.OriginalL'auteur user671805 | 2012-11-18
Vous devez vous connecter pour publier un commentaire.
C'est la fonction utilisée pour faire de corrélation (coefficient) entre les deux images (matrices):
r = corr2(A,B)
calcule le coefficient de corrélation entre A et B, où A et B sont des matrices ou des vecteurs de même taille.
tout xcorr2 (A, B) permet de résoudre pour de corrélation CROISÉE.
OriginalL'auteur The Byzantine
utiliser le xcorr2 fonction. Par exemple:
OriginalL'auteur bla
MATLAB a
xcorr2
juste pour ce but. Je suppose que votre code devrait ressembler à quelque chose comme:Où
f1
etf2
sont les deux images. La matrice résultanter
est un (2P-1)×(2P-1) la matrice, et chacun de ses éléments reflètent la mesure de similarité entre f1 et f2, lorsque les deux images sont décalées par un décalage correspondant à l'élément du décalage à partir du centre.Notez que si vous n'êtes intéressés que dans la corrélation entre les deux unshifted images, vous devez enregistrer les temps d'exécution et l'utilisation
corr2
, comme @TheByzantine a indiqué dans sa réponse.Oui, la matrice de corrélation (2P-1)x(2P-1).
Mais il est censé être un seul numéro, puisque cette mesure a été utilisée comme une mesure de similarité entre les 2 images.... Ou serait-il de la somme(sum(r)) ?
Non,
r
est censé être un matrice, où chaque élément reflète la mesure de similarité entref1
etf2
, avec décalage correspondant (phase) de l'élément à partir du centre. Par exemple, l'élément (0, 0) montre la corrélation entre les images si l'on est décalé de P pixels dans chaque axe par rapport à l'autre. Cela signifie que si vous voulez un nombre qui indique à quoi ressemblent les images sans tout changer, que serait l'élément dans la (P, P) de la position.Le lien que vous avez mentionné parle glissant l'une matrice sur le dessus de l'autre....Juste pour vérifier , lorsque les 2 matrices sont exactement sur le dessus les uns des autres, pour obtenir la co-relation serait équivalent à trouver ( M , N ) position dans xcorr2 ?
OriginalL'auteur Eitan T