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.
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
konvertiert werden.
convert_image_type
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.
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.
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) |
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_2dim
(1) | (2) | (3) |
Um die Orientierung der Bildkanten zu visualisieren steht der Bildtyp
direction
(8 Bit, ohne Vorzeichen) zur Verfügung.
(1) | (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.
Der Bildtyp real
(32 Bit, Fließkommawerte) wird für
Ableitungsbilder genutzt mit deren Hilfe beispielsweise Kanten
extrahiert werden.
(1) | (2) |
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) |
Der Bildtyp cyclic
(8 Bit, ohne Vorzeichen) wird für
Hue-Werte (Farbwerte) genutzt, sodass der Wertebereich zyklisch ist.
Dementsprechend gilt hier.
(1) | (2) |
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) |
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.
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.
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
beziehungsweise trans_to_rgb
.
trans_from_rgb
(1) | (2) | (3) | (4) |
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) |
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.
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) |