Bild

Liste der Abschnitte ↓

Dieses Kapitel beschreibt Operatoren zum Umgang mit verschiedenen Bildtypen.

Um die verschiedenen Bildtypen, die mit HALCON verarbeitet werden können, zu verstehen, werden in den folgenden Abschnitten die drei Komponenten eines Bildes (Pixel, Kanäle, und Domäne) erklärt.

Pixel

In HALCON können Pixel genutzt werden um unterschiedliche Arten von Informationen zu repräsentieren. Daher werden deren Bedeutung entsprechend verschiedene Pixeltypen unterschieden. Die folgende Tabelle listet diese verschiedenen Pixeltypen und deren zugehörigen Standard-Bildtypen. Zu beachten ist, dass diese Auflistung nicht exklusiv ist (beispielsweise können Grauwertbilder viele weitere Bildtypen aufweisen). Bildtypen können mit convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageType konvertiert werden.

Pixeltyp Standard-Bildtyp
Grauwerte byte, uint2
Differenz int1, int2
2D-Histogramm int4
Kantenrichtungen direction
Ableitungen real
Fouriertransformation complex
Hue-Werte cyclic
Vektorfeld vector_field

Es ist zu beachten, dass der Bildtyp vector_field zusätzlich als vector_field_absolute oder vector_field_relative spezifiziert werden kann. Zudem existiert auch der Bildtyp int8 (64 Bit mit Vorzeichen), welcher nur auf 64-Bit_Systemen verfügbar ist. Weitere Informationen zu den einzelnen Pixeltypen werden im Folgenden gegeben.

Grauwerte

Grauwertbilder sind standardmäßig vom Typ byte (8 Bit, ohne Vorzeichen) oder uint2 (16 Bit, ohne Vorzeichen) und werden meist zur Darstellung lokaler Lichtintensitäten auf einem Sensor genutzt.

Exemplarisches Grauwertbild.
Differenzbild

Um die Unterschiede zweier Bilder zu zeigen kann pixelweise deren Differenz gebildet werden, wofür sich beispielsweise die Bildtypen int1 (8 Bit, mit Vorzeichen) oder int2 (16 Bit, mit Vorzeichen) eignen.

(1) (2) (3)
Vergleich eines Bildes (1) mit einer anderen (z.B. darauffolgend aufgenommenen) Aufnahme (2) durch Subtraktion Letzterer von der Ersteren. Als Ergebnis erhält man ein Differenzbild (3).
2D-Histogramm

Um Bildmerkmale basierend auf dem Vorkommen von Grauwerten in zwei Bildern zu untersuchen kann ein 2D-Histogramm genutzt werden, welches vom Bildtyp int4 (32 Bit, mit Vorzeichen) ist. Dabei bilden die beiden Achsen (Zeile und Spalte des Histogramms) jeweils die Grauwerte eines Eingabebildes ab. Die entsprechenden Pixel eines Eingabebildes werden dementsprechend in dem 2D-Histogramm eingetragen. Umso häufiger eine bestimmte Kombination an Grauwerten in den Bildern auftritt, desto höher der entsprechende Grauwert im Ausgabebild (siehe auch histo_2dimhisto_2dimHisto2dimHisto2dimHisto2dim).

(1) (2) (3)
Zwei Kanäle eines Beispielbildes ((1), (2)) und deren zugehöriges 2D-Histogramm (3).
Kantenrichtungen

Um die Orientierung der Bildkanten zu visualisieren steht der Bildtyp direction (8 Bit, ohne Vorzeichen) zur Verfügung.

(1) (2)
Untersuchung von Bildmerkmalen (1) durch die Visualisierung der Kantenrichtungen (2).

In Bildern des Typs direction wird eine Kantenrichtung von x Grad in mathematisch positivem Sinn in Bezug auf die horizontale Achse als x / 2 (also im Bereich von 0 bis 179) im Ergebnisbild abgespeichert. Pixel mit einer Kantenamplitude von 0 wird der Wert 255 (undefinierte Richtung) zugeordnet.

image/svg+xml 0 255 180° 90° 270° 360°
Visualisierung der Kantenrichtungen dunkler und heller Objekte mittels sobel_dirsobel_dirSobelDirSobelDirSobelDir: Die Kantenrichtung (im Eingabebild mit tangentialem Pfeil markiert) eines Pixels wird im rechts Ergebnisbild mit einem entsprechenden Grauwert abgebildet. Stellen ohne Kanten werden mit einem Grauwert von 255 markiert.
Ableitungen

Der Bildtyp real (32 Bit, Fließkommawerte) wird für Ableitungsbilder genutzt mit deren Hilfe beispielsweise Kanten extrahiert werden.

(1) (2)
Manche Merkmale innerhalb eines Bildes (1) (z.B. Kanten, Gradienten) können durch das Bilden ihrer Ableitungen (2) untersucht werden.
Fouriertransformation

Um den Frequenzbereich eines Bildes zu untersuchen kann die Fouriertransformation genutzt werden. Die Kombination aus Magnitude und Phase der einzelnen Frequenzen wird durch komplexe Zahlen repräsentiert, wofür der Bildtyp complex (zwei real-Werte pro Pixel) verwendet wird.

(1) (2)
Eine mögliche Vorgehensweise zur Identifikation von Buchstaben (1) ist die Betrachtung des Frequenzbereichs mit Hilfe der Fouriertransformation (2).
Hue-Werte

Der Bildtyp cyclic (8 Bit, ohne Vorzeichen) wird für Hue-Werte (Farbwerte) genutzt, sodass der Wertebereich zyklisch ist. Dementsprechend gilt hier .

(1) (2)
Die Pixel repräsentieren Hue-Werte. Wird ein Pixelwert über 255 erhöht, so wird er an den Anfang des Grauwertbereichs zurückverschoben. Addiert man zu den Pixelwerten eines Bildes des Bildtyps cyclic (1) eine Konstante, ergibt sich ein Bild wie in (2) zu sehen.
Vektorfeld

Ein spezieller Bildtyp zur Darstellung absoluten/relativen optischen Flusses ist vector_field (zusammengesetzt aus zwei Bildern des Bildtyps real für die x- und y-Richtung). Der Bildtyp kann weiter spezifiziert werden indem man ihn auf vector_field_absolute (als absolute Koordinaten interpretiert) beziehungsweise vector_field_relative (als Vektoren interpretiert) setzt.

(1) (2) (3)
Die relative Bewegung von Pixeln (beispielsweise in aufeinander folgenden Bildern (1) und (2) können durch ein Vektorfeld dargestellt werden (3).

Kanäle

Neben verschiedenen Pixeltypen können in einem Bild auch verschiedene Kanäle genutzt werden um spezifische Informationen zu speichern. Prinzipiell können Kanäle genutzt werden um einem Pixel mehrere Werte zuordnen zu können. In den nächsten Absätzen werden einige typische Fälle zur Nutzung von Bildkanälen kurz erläutert.

Grauwertbilder (Einkanalige Bilder)

Häufig wird in einem Bild nur ein Wert pro Pixel gespeichert. In einem Grauwertbild beispielsweise, ist pro Pixel ein lokaler Intensitätswert von Licht auf einem Sensor registriert. Nichtsdestotrotz können viele Arten von Informationen in Pixeln gespeichert werden (z.B. Grauwertableitungen, Distanzen). Bei der Interpretation dieser Daten kann es aber häufig von Vorteil sein diese wie Grauwertbilder zu visualisieren.

RGB-Bild (Dreikanalige Bilder)

Für Farbbilder werden Pixelwerte typischerweise in drei Kanälen gespeichert. Diese repräsentieren jeweils die Intensitäten für rotes, grünes oder blaues (RGB) Licht pro Pixel, wodurch durch additives Mischen eine Farbe für jedes Pixel definiert wird.

Neben dem RGB-Modell existieren einige weitere Farbmodelle. Weitere Informationen zu diesen Modellen und dem Transformieren zwischen den verschiedenen Farbräumen finden sich in trans_to_rgbtrans_to_rgbTransToRgbTransToRgbTransToRgb beziehungsweise trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbTransFromRgb.

(1) (2) (3) (4)
RGB-Bild (1) und dessen drei Kanäle im Einzelnen: lokale Intensitäten unterscheiden sich für den roten (2), grünen (3), und blauen Kanal (4).
Multispektralbild (Mehrkanalige Bilder)

Mit speziellen Kameras kann eine Vielzahl spektraler Bänder aufgenommen werden, auch außerhalb des sichtbaren Lichtspektrums. Beispielsweise nehmen satellitengestützte Kameras oft multispektrale Daten auf, welche sie dementsprechend in einer Vielzahl von Kanälen abspeichern.

(1) (2) (3)
(4) (5) (6)
Sechs Kanäle eines Satellitenbildes: die unterschiedlichen Kanäle des multispektralen Bildes können genutzt werden um Merkmale zu extrahieren, die besonders in einem speziellen spektralen Band prominent auftreten.
Mehrkanalige Bilder

Neben der Darstellung von Lichtintensitäten kann die Nutzung mehrerer Kanäle in einem Bild auch verschiedene weitere Zwecke erfüllen:

Beispielsweise kann durch die Kombination eines Grauwertbildes mit einem zusätzlichen Kanal, welcher Tiefenwerte enthält, eine Szene als 3D-Plot visualisiert werden.

Statt der Nutzung einer Tiefenkamera zur Aufnahme von Tiefendaten kann in manchen Fällen auch ein mehrkanaliges Bild zur Extraktion von Tiefenwerten genutzt werden. Dazu muss jeder Kanal ein Bild einer Serie mit unterschiedlichen Fokusebenen enthalten.

Abgesehen von der Speicherung räumlicher Informationen einer Szene können die Kanäle eines Bildes auch als Merkmalsraum interpretiert werden um eine Hauptkomponentenanalyse (PCA) durchzuführen.

Domäne

Die Domäne eines Bildes bestimmt die Fläche eines Bildes, die in den folgenden Bearbeitungsschritten berücksichtigt werden soll. Um die Verarbeitung auf die relevanten Bildausschnitte zu reduzieren und/oder die Anwendung zu beschleunigen kann die Domäne eines Bildes entsprechend reduziert werden.

(1) (2) (3)
Die Domäne des Eingabebildes (1) wird reduziert, beispielsweise durch die Anwendung eines Schwellwerts (2). Bildbereiche, die für weitere Operationen relevant sind (orange), bleiben im Ergebnisbild (3) erhalten, wohingegen überflüssige Bereiche ausgeschlossen werden (schwarz).

Liste der Abschnitte