Wie finde ich die Farbkanalverschiebung eines RGB-Bildes, das Graustufen sein sollte?


9

Ich verwende ein Aufnahmegerät, das die Farben horizontal zu verschieben scheint, und ich möchte die Menge an Verschiebungen ermitteln, die ich auf 2/3 der Kanäle vornehmen muss, um ein Bild mit minimaler Farbverzerrung zu erhalten.

aufgenommenes Bild

Sie können hier sehen, dass im Originalbild mindestens der blaue Kanal mit ~ 1,0 Pixel zurück verschoben wurde.

Geben Sie hier die Bildbeschreibung ein

Die Frage ist, wie ich die optimalen Verschiebungswerte erkennen kann. Ich bin sicher, dass es sich nicht um Ganzzahlen handelt.


Welche dieser Bilder werden von Ihrem Gerät aufgenommen?

Antworten:


4

Konzeptionell scheinen Sie fast da zu sein:

  • Nehmen Sie einen der drei Farbkanäle als Referenz (zum Beispiel: rot)
  • Kombiniere das Grün mit dem Rot
  • Kombiniere das Blau mit dem Rot

Das Problem ist dann die Übereinstimmung mit der Subpixel-Genauigkeit. Es ist etwas schwierig, aussagekräftige Zahlen zu erhalten, da die Interpolationsfehler, die jede Methode macht, sich auf die Genauigkeit auswirken.

Ich kann mir zwei verwendbare Bildregistrierungsmethoden vorstellen:

  1. Lucas-Kanade Bildregistrierung. Wenn Sie die lineare Interpolation verwenden, erhalten Sie möglicherweise nicht genau genug Ergebnisse. Ziehen Sie daher bikubische oder andere Methoden in Betracht. Neil Dodgson hat einen schönen Überblick gemacht. Es ist wichtig, dass verschiedene Subpixelverschiebungen des Interpolationskerns eine ähnliche Frequenzübertragung haben. Für die kubische Familie ist der ungefähre B-Spline in diesem Fall weitaus besser als der Cattmull-Rom.

  2. Skalieren Sie zuerst das Bild hoch und führen Sie dann eine pixelgenaue Bildregistrierung mit Ihrer bevorzugten Technik durch. (Kreuzkorrelation in der Fourier-Domäne sollte reichen). Dies funktioniert nur, wenn die Hochskalierung sorgfältig durchgeführt wird. Bilinear oder bikubisch geben Ihnen höchstwahrscheinlich nicht genügend Genauigkeit. Ich kann mir drei Möglichkeiten vorstellen:

ein. Yen-Interpolation . Siehe Gleichung 11 seiner Arbeit. Wirklich langsam, aber optimal. Obwohl Sie anscheinend einen Alias ​​im Signal haben, gilt die von Yen getroffene "bandbegrenzte" Annahme möglicherweise nicht.

b. Berechnen Sie die FFT des Bildes, füllen Sie die hohen Frequenzen mit Null auf, inverse FFT.

c. Nichtlineare Hochskalierung. Da die Kanten ziemlich scharf sind, ist das Bild nicht richtig bandbegrenzt, was möglicherweise die Hauptbeschränkung der vorherigen Methoden darstellt. In diesem Fall ist die kantenabhängige Richtungsinterpolation möglicherweise besser.

Sobald Sie die Subpixel-Übersetzung zwischen den beiden haben, ist die Korrektur des grünen und blauen Kanals bereits gelöst, unabhängig davon, welche Methode Sie wählen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.