Wie eine Bild Kreuzkorrelation mit subpixel-Genauigkeit, die mit scipy

Das Bild unten zeigt zwei Kreise gleichen radius haben, gerendert mit Anti-Aliasing, nur, dass der linke Kreis wird verschoben halben pixel horizontal (beachten Sie, dass der Kreis der horizontalen Mitte ist in der Mitte des pixels in der linken, auf der pixel-Grenze auf der rechten Seite).

Wenn ich eine Kreuz-Korrelation, die ich nehmen kann die Lage des Maximums auf der Korrelation von array, und berechnen Sie dann die Umschalttaste. Aber da die pixel-Positionen sind immer ganze zahlen, meine Frage ist:

"Wie bekomme ich eine sub-pixel (floating point) - offset zwischen zwei Bildern mittels Kreuz-Korrelation in Numpy/Scipy?"

In meinen Skripten verwende entweder von scipy.signal.correlate2d oder scipy.ndimage.filters.correlate, und Sie scheinen zu produzieren identische Ergebnisse.

Den Kreisen, die hier sind nur Beispiele, aber mein domain-spezifische Funktionen neigen dazu, sub-pixel-Verschiebungen, und derzeit immer nur ganzzahlige Verschiebungen gibt, werden Ergebnisse, die nicht so gut...

Jede Hilfe wird sehr geschätzt!

Wie eine Bild Kreuzkorrelation mit subpixel-Genauigkeit, die mit scipy

  • Sollte diese Frage bewegt werden, um die Signalverarbeitung? (dsp.stackexchange)
InformationsquelleAutor heltonbiker | 2012-12-05
Schreibe einen Kommentar