Erklären corr2-Funktion in Matlab
Kann mir jemand erklären die Korrelation Funktion corr2 in Matlab. Ich weiß, dass es zum 2D-Vergleich von ähnlichkeiten der Objekte, sondern in der Gleichung http://prntscr.com/5e5v5c ich habe Zweifel, was es ist, A und B (wahrscheinlich Matrizen für den Vergleich), und auch Amn und Bmn.
Ich Frage, weil ich nicht sicher bin, wie Matlab die diese Funktion erfüllen, weil ich gefunden habe in mehreren Fällen, dass die Korrelation wird nicht ausgeführt, für das gesamte Bild (matrix), aber Sie teilen das Bild in Blöcke ein und vergleichen Blöcke(von einem Bild) mit den Blöcken(von anderen Bild).
In Matlab Abschnitt mit der corr2-Gleichung es ist nicht ein referral-Punkt, um die Art und Weise der Gleichung selbst wird durchgeführt wie in anderen Funktionen in Matlab(wie Punkt, in welchem Buch es stammt und wo es erklärt wird).
- Sie können eingeben 'Bearbeiten corr2' in der MAtlab-Befehlszeile, und überprüfen Sie deren Umsetzung. MAtlab-Dokumentation von corr2 mit Formeln ist hier nl.mathworks.com/help/images/ref/corr2.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Korrelationskoeffizient ist eine Zahl, die die ähnlichkeit zwischen den 2 Bildern im Zusammenhang mit Ihrer jeweiligen pixel-Intensität.
Als Sie wies darauf hin, diese Funktion wird zur Berechnung dieses Koeffizienten:
Hier A und B sind die Bilder, die Sie vergleichen, in der Erwägung, dass die tiefgestellten Indizes m und n beziehen sich auf die Pixelposition in das Bild. Im Grunde, was Matab tut, ist zu berechnen, für jede pixel-Position ist in beiden Bildern der Unterschied zwischen der Intensität-Wert an, dass die pixel und die mittlere Intensität des gesamten Bildes, so bezeichnet man dies als einen Brief mit einer Längsnaht über es.
Als Kostya wies darauf hin, die Eingabe
edit corr2
im Kommando-Fenster zeigt Ihnen den code für Matlab zur Berechnung des Korrelationskoeffizienten. Die Formel ist im Grunde so:wo:
ein input-Bild und b ist das Bild, das Sie vergleichen möchten, um eine.
Wenn wir brechen die Formel sehen wir, dass
a - mean2(a)
undb-mean2(b)
sind die Elemente im Zähler der obigen Gleichung.mean2(a)
entsprichtmean(mean(a))
odermean(a(:))
, das ist die mittlere Intensität des gesamten Bildes. Dies ist nur einmal berechnet.Der 3. Zeile der code berechnet die Koeffizienten. Hier
sum(sum(a.*b))
berechnet den Doppel-Summe vorhanden, die in die Formel-element-Weise, d.h. unter Berücksichtigung jeder einzelnen Pixelposition getrennt. Werden Sie sich bewusst, dass mitsum(a)
berechnet die Summe in jeder Spalte einzeln, also um einen einzigen Wert, den Sie anwenden müssensum
zweimal.Das ist so ziemlich das gleiche passiert im Nenner, aber die Berechnungen erfolgen auf
a-mean2(a)^2
undb-mean2(b)^2
. Sie können sehen, dass dies eine Art von Normalisierung Prozess, in dem Sie betrachten, der pixel-Intensität Unterschied zwischen jedem einzelnen Bild.Als für Ihren letzten Kommentar, Sie können brechen ein Bild in kleine Blöcke und berechnen Sie den Korrelationskoeffizienten auf Sie; dass könnte sparen Sie einige Zeit für sehr große Bilder, aber da ist alles vektorisiert die Berechnung ist sehr schnell. Es kann hilfreich sein, verteilte Verarbeitung, denke ich. Natürlich sind die Korrelationskoeffizienten zwischen den 2 blocks von Bildern ist nicht unbedingt identisch mit dem für das gesamte Bild.
Gründen der Neugier, die Sie betrachten können diese Papier, welche highlights Sie einige Vorsichtsmaßnahmen bei der Verwendung der Korrelationskoeffizienten für den Vergleich von Bildern.
Hoffe, das macht die Sache ein wenig klarer!