chevron_left
chevron_right

Wege zum guten Digitalbild

In der industriellen Bildverarbeitung sind gute Bilder Voraussetzung für erfolgreiche Resultate. Ein Expertenartikel zeigt auf, wie durch das Optimieren von Belichtungszeit, Weissabgleich, Farbkalibration, Linsenentzerrung und Bildschärfung ein Maximum aus digitalen Daten herausgeholt wird.

 

(msc) Die im Folgenden beschriebene Image Processing Pipeline wurde für die «O-3000»-Kamera des Herstellers Stettbacher Signal Processing AG entwickelt. Der Code ist frei erhältlich, die Interface-Spezifikation, alle Treiber und die Beispielprogramme sind offengelegt.Digitale Kameras liefern nicht von sich aus gute Bilder. Nebst geeigneter Beleuchtung sind ausgeklügelte Bildverarbeitungsalgorithmen notwendig, um das Bild oder den Stream naturgetreu erscheinen zu lassen. Solche Algorithmen werden in einer Image Processing Pipeline implementiert.

Jede Kamera braucht ein Objektiv mit geeigneter Brennweite und Blendenöffnung, auch Apertur genannt. Die Szene wird durch das Linsensystem des Objektivs auf den Bildsensor und dessen lichtempfindliche Pixel projiziert.

Die O-3000-Kameras verfügen über eine USB-High-Speed-Schnittstelle. Der Sensor bietet eine Auflösung von 1,2 Megapixel und liefert im Normalbetrieb Bilder mit 12 Bit pro Pixel. Im HDR-Modus (High Dynamic Range) erzielt die Kamera eine Dynamik von über 115 dB, was rund 20 Bit pro Pixel entspricht.

Bei Kamerasystemen mit einer fixen Apertur wird die Helligkeit des Bildes mit der Belichtungszeit und der Pixelverstärkung variiert. Beide Methoden bergen Nachteile bei dunklen Szenen, da lange Belichtungszeiten bei bewegten Objekten zu Unschärfe, eine hohe Pixel-Verstärkung zu Bildrauschen führt. Deshalb muss ein Kompromiss gesucht werden. Die Helligkeit der aufgenommenen Szene lässt sich mit einem Histogramm analysieren und mit einer geeigneten Kombination aus Belichtungszeit und Pixelverstärkung einstellen.

Die O-3000-Kamera hat bereits einen Algorithmus implementiert, der die Helligkeit des Bildes automatisch optimiert. Eine manuelle Pixelverstärkung und Belichtungszeit wird unterstützt.

Die Pixelwerte von CMOS-Bildsensoren liegen im Bayer-Format vor. Die RGB-Farbwerte (Rot, Grün, Blau) müssen erst pro Pixel rekonstruiert werden. Dazu wird der sogenannte Nearest-Neighbor-Algorithmus verwendet, der den RGB-Farbwert aus den Nachbarpixeln bestimmt.

Unterschiedliche Lichtquellen ergeben verschiedene sogenannten Farbtemperaturen. Eine normale Glühlampe mit einer tiefen Farbtemperatur erzeugt ein warm-weisses, gelbliches Licht, während eine Leuchtstofflampe mit höherer Farbtemperatur einen kalt-weissen, bläulichen Farbton abstrahlt. Das darunter aufgenommene Bild weist einen Farbstich entsprechend der Beleuchtung auf. Der Weissabgleich soll diese Tönung ausgleichen. Entsprechende Algorithmen ermitteln und korrigieren fortlaufend die dominante Farbe im Bild.

Verschiedene Kameras liefern von denselben Farben unterschiedliche RGB-Werte, da jede Kamera leicht andere elektrische und optische Eigenschaften aufweist. Um die Farben realitätsnah wiederzugeben, müssen die kameraspezifischen RGB-Werte kalibriert werden. Dazu verwendet man eine sogenannte Color-Checker-Grafik, die definierte Farbflächen enthält. Beim Kalibrieren wird die Color-Checker-Grafik fotografiert und mit den tatsächlichen Farbwerten verglichen. Daraus wird eine Korrekturmatrix abgeleitet, die den kameraspezifischen Farbraum in den standardisierten Farbraum abbildet.

Je nach Brennweite weisen Objektive eine kissen- oder tonnenförmige Verzeichnung auf. Es kann auch sein, dass die Optik nicht parallel zur Achse des Bildsensors ausgerichtet ist. Daraus resultierende Verzerrungen sind mit Modellen berechenbar. Sie können leicht korrigiert werden, indem durch Adaption der Modellparameter an einem zuvor aufgenommenen Gittermuster alle Gitterlinien so lange korrigiert werden, bis sie rechtwinklig aufeinander stehen.

Um ein Bild schärfer erscheinen zu lassen, werden gewisse Elemente des Bildes, etwa die Kontur eines Objekts, verstärkt. In der Bildverarbeitung gibt es verschiedene Ansätze, um dies zu erreichen. Ein global geschärftes Bild verstärkt alle Gradienten gleichmässig. Dieses Vorgehen hat den Nachteil, dass es auch das Bildrauschen anhebt. Das Verfahren lässt sich deutlich verbessern, indem nur an kritischen Stellen, etwa an Kanten, geschärft wird.

Zu guter Letzt gibt es noch die Gammakorrektur. Sie wurde entwickelt, um das nicht-lineare Verhalten von Röhrenmonitoren zu kompensieren. Der Gammawert ist ein Mass für die Stärke einer nicht-linearen Helligkeitstransformation. Damit werden dunkle oder helle Bildbereiche für das menschliche Auge bezüglich der Helligkeit gestreckt. So werden in sehr hellen oder sehr dunklen Bereichen versteckte Details sichtbar gemacht. Die Transformation verwendet eine einfache Potenzfunktion. Gammawerte, die kleiner als 1,0 sind, hellen dunkle Szenen auf, während sich helle Pixel nur wenig ändern. Das Gegenteil geschieht bei Gammawerten grösser als 1,0.


Stettbacher Signal Processing AG
8600 Dübendorf
www.stettbacher.ch