2017-06-26 6 views
1

Ich möchte eine Frage über normalisierte Kreuzkorrelation stellen.Verschiebung zwischen 2 Bildern

, ja die Schritte der Berechnung der normalisierten Kreuzkorrelation (NCC) sind:

  1. Berechnung der FFT oder Faltungs
  2. Berechnung der lokalen Summen

Die Formel von NCC verfügbar ist in am Ende dieser Dokumentation https://fr.mathworks.com/help/images/ref/normxcorr2.html

Im ersten Schritt nahm ich (es ist ein Beispiel):

a =

0.4693 0.2015 0.3220 0.8843 
0.9090 0.1872 0.7254 0.8845 
0.6666 0.6917 0.4871 0.3952 
0.1845 0.9348 0.2403 0.9641 

b =

0.5244 0.0120 0.0678 0.8644 
0.4334 0.1436 0.4166 0.7587 
0.8684 0.7909 0.5884 0.9340 
0.4638 0.0562 0.5183 0.6035 

Dann a2 =

0.4693 0.2015 0.3220 0.8843   0   0 
0.9090 0.1872 0.7254 0.8845   0   0 
0.6666 0.6917 0.4871 0.3952   0   0 
0.1845 0.9348 0.2403 0.9641   0   0 
    0   0   0   0   0   0 
    0   0   0   0   0   0 

b2 =

0.5244 0.0120 0.0678 0.8644   0   0 
0.4334 0.1436 0.4166 0.7587   0   0 
0.8684 0.7909 0.5884 0.9340   0   0 
0.4638 0.0562 0.5183 0.6035   0   0 
    0   0   0   0   0   0 
    0   0   0   0   0   0 

I gefunden:

CONV2 (rot90 (A, 2), b)

am =

0.5055 0.1376 0.5584 0.9575 0.2733 0.8205 0.1595 
0.6250 0.5028 1.2366 1.7782 1.0741 1.4291 0.7161 
1.4722 1.6299 2.2702 4.1249 2.3243 2.0076 1.4637 
1.6373 1.5220 2.8883 5.0546 3.0854 2.4246 1.8292 
1.3345 1.8440 2.3115 4.0665 2.5920 1.8209 1.6073 
1.1781 1.3650 1.5358 2.9240 1.3762 1.0484 0.9869 
0.4101 0.1990 0.5698 0.9295 0.3251 0.3648 0.2832 

CONV2 (rot90 (a2,2), b2)

am =

 0   0   0   0   0   0   0   0   0   0   0 
    0   0   0   0   0   0   0   0   0   0   0 
    0   0 0.5055 0.1376 0.5584 0.9575 0.2733 0.8205 0.1595   0   0 
    0   0 0.6250 0.5028 1.2366 1.7782 1.0741 1.4291 0.7161   0   0 
    0   0 1.4722 1.6299 2.2702 4.1249 2.3243 2.0076 1.4637   0   0 
    0   0 1.6373 1.5220 2.8883 5.0546 3.0854 2.4246 1.8292   0   0 
    0   0 1.3345 1.8440 2.3115 4.0665 2.5920 1.8209 1.6073   0   0 
    0   0 1.1781 1.3650 1.5358 2.9240 1.3762 1.0484 0.9869   0   0 
    0   0 0.4101 0.1990 0.5698 0.9295 0.3251 0.3648 0.2832   0   0 
    0   0   0   0   0   0   0   0   0   0   0 
    0   0   0   0   0   0   0   0   0   0   0 

Also, Hinzufügen von Nullen wird nicht das Ergebnis der FFT/Faltung ändern. Aber nach der Berechnung lokaler Summen ändert sich das Ergebnis, weil es die Größe von a (oder a2) berücksichtigt. (normxcorr2(a,b) unterscheidet sich von normxcorr2(a2,b2))

Wenn ich also die Verschiebung zwischen zwei Graustufen-Bilder unter Verwendung von Kreuzkorrelation berechnet werden soll, ist das Ergebnis nicht das gleiche, als wenn ich das Bild übersetzt (durch Auffüllen mit Nullen)

Could Sie erklären mir, warum sich die Verschiebung ändert, selbst wenn die Übersetzung (Padding) gleich ist?

+0

Wie berechnen Sie 'a2' und' b2'? – m7913d

+0

@ m7913d Ich pad 'a' und' b' von 'a2 = padarray (a, [2 2], 'post')' – ransa

Antwort

1

Es sieht wie ein Kanteneffekt aus.

Betrachten Sie zwei Bilder a und b, wobei Blau einen Wert von 0,5 und Rot einen Wert von 0,25 hat.

enter image description here

Wenn Sie eine Phasenkorrelation zwischen den beiden Bildern auszuführen sind, Sie das Bild eines eine Einheit in der x-Richtung und 1 Einheit in der y-Richtung mit einem normierten Korrelationswert übersetzt worden finden würde 1 (perfekte Übereinstimmung!).

Allerdings betrachten Hinzufügen jetzt eine Grenze von 0s herum Bilder a und b die Bilder A und B herzustellen:

enter image description here

Handeln einer Phasenkorrelation, um diese Bilder in einer 0 Verschiebung in der x führen wird Richtung und eine 0-Verschiebung in der y-Richtung ABER der normierte Korrelationswert wird nicht 1 sein. Tatsächlich ist der normalisierte Korrelationswert 0,708254. Dies ist sinnvoll, da die Phasenkorrelation der Grenze der Bilder entspricht.

Es gibt viele Möglichkeiten, zum Beispiel ein Hamming-Fenster, auf das ich nicht eingehen werde.

Dieser Wikipedia-Artikel ist eine gute Referenz zu (https://en.wikipedia.org/wiki/Phase_correlation)

Viel Glück und lassen Sie mich wissen, wenn Sie meine Antwort gar verwirrend ist.

+0

Danke! Es hat mir geholfen, das Problem besser zu verstehen! – ransa

Verwandte Themen