Ich versuche, die Bildregistrierung mithilfe der Phasenkorrelation durchzuführen, wie im Reddy Chatterji- Artikel beschrieben . In meinem Fall können die Bilder relativ zueinander skaliert und übersetzt werden.
Der Algorithmus zum Ermitteln der relativen Skala ist, wie ich es verstehe, (siehe: das Flussdiagramm aus dem Papier ):
F1 = DFT(I1)
F2 = DFT(I2)
H1 = Highpass(F1)
H2 = Highpass(F2)
L1 = LogPolar(Magnitude(H1))
L2 = LogPolar(Magnitude(H2))
PC = PhaseCorrelate(L1,L2)
PM = norm(PC)
R = IDFT(PhaseCorr/PM)
P = Peak(R)
Scale = LogBase^P[1]
Die Skalierung gibt mir scheinbar unsinnige Werte (von Bild zu Bild sehr unterschiedlich und niemals korrekt).
Wenn man jedoch die Skalierung ignoriert, funktioniert der gleiche Phasenkorrelationsansatz gut für die Übersetzung. und so vermute ich, dass ich ein Problem mit meiner logarithmischen Polartransformation habe. Hier ist ein Beispiel, in dem ich die Übersetzung gelöst habe - das linke Bild ist das Original und das rechte wurde zugeschnitten und übersetzt - die Lösung wird oben auf dem Original angezeigt:
Für die logarithmische Polartransformation transformiere ich zuerst in den Polarraum: wobei das Originalbild ist, ist Bildradius (halbe Breite) und ist die Anzahl der Abtastwerte in der Richtung. Ich probiere dann daraus, um mich in einen logarithmischen Polarraum zu verwandeln: wobei wie in 1 beschrieben, so dass es den gesamten Polarraum überspannt.
Hier sind die Beispielbilder im logarithmischen Polarraum mit (falls etwas auffällig nicht stimmt):
Zuletzt zeigt dies die tatsächliche Transformation, die die Bilder vor dem Phasenkorrelationsschritt durchlaufen (oben ist die DFT-Größe nach dem Hochpassfilter, unten ist die im logarithmischen Polarraum):
Ich verwende OpenCV mit LogPolar- und PhaseCorrelate-Methoden. Während das PhaseCorrelate, wie meine manuelle Implementierung, mir die richtige Antwort für die Übersetzung gibt, ist es im Maßstab falsch. Da die Verwendung des OpenCV LogPolar oder meines eigenen die Richtigkeit nicht beeinträchtigt, muss mir etwas fehlen.
Jede Hilfe wäre dankbar.