| Operatoren |
cfa_to_rgb — Umwandlung eines einkanaligen Farbmosaikbildes in ein RGB-Bild.
cfa_to_rgb(CFAImage : RGBImage : CFAType, Interpolation : )
cfa_to_rgb wandelt ein einkanaliges Farbmosaikbild CFAImage in ein RGB-Bild RGBImage um. Farbmosaikbilder werden typischerweise von Ein-Chip-CCD-Kameras erzeugt. Die Transformation von Farbmosaikbild in RGB-Bild erfolgt typischerweise auf der Kamera selbst oder wird vom Gerätetreiber des verwendeten Framegrabbers durchgeführt. In manchen Fällen wird allerdings vom Gerätetreiber das Farbmosaikbild ohne Verarbeitung weitergereicht. In diesem Fall wird typischerweise im jeweiligen HALCON-Framegrabber-Interface die Konversion in ein RGB-Bild durchgeführt. Der Operator cfa_to_rgb bietet sich also hauptsächlich dann zur Verwendung an, wenn die Bilder nicht mit dem HALCON-Framegrabber-Interface (grab_image oder grab_image_async) eingezogen werden, sondern mit einer selbstgeschriebenen Funktionalität, die das Bild mit gen_image1 oder gen_image1_extern an HALCON übergibt.
Bei Ein-Chip-CCD-Kameras sorgt ein Farbmosaikfilter vor dem Sensor für die Erzeugung (unterabgetasteter) Farbinformation. Der am häufigsten verwendete Farbmosaikfilter ist der sog. Bayer-Filter. Die Farbfilter vor den Sensorelementen des CCD-Chips haben hierbei folgende Anordnung:
+---+---+---+---+---+---+----
| G | B | G | B | G | B | ...
+---+---+---+---+---+---+----
| R | G | R | G | R | G | ...
+---+---+---+---+---+---+----
| G | B | G | B | G | B | ...
+---+---+---+---+---+---+----
| R | G | R | G | R | G | ...
+---+---+---+---+---+---+----
| . | . | . | . | . | . | .
| . | . | . | . | . | . | .
| . | . | . | . | . | . | .
Jeder Grauwert des Eingabebildes CFAImage entspricht der Helligkeit des Pixels hinter dem entsprechenden Farbfilter. In der obigen Anordnung entspricht also das Pixel (0, 0) einem Grünwert, das Pixel (0, 1) einem Blauwert. Die Anordnung des Bayer-Filters wird vollständig bestimmt durch die ersten zwei Elemente der ersten Bildzeile, welche mit CFAType festgelegt werden kann. Dies erlaubt insbesondere die korrekte Umwandlung von Farbmosaikbildern, die aus einem größeren Bild ausgeschnitten worden sind (z.B. mit crop_part oder crop_rectangle1).
Der Algorithmus, der zur Berechnung der RGB-Werte verwendet wird, wird mit Interpolation festgelegt. Für Interpolation = 'bilinear' wird eine bilineare Interpolation durchgeführt. Für Interpolation = 'bilinear_dir' wird eine modifizierte Variante der bilinearen Interpolation durchgeführt, die zu weniger „reißverschlussartigen“ Artefakten, speziell bei horizontalen oder vertikalen Kanten im Bild, führen kann.
Falls 'mmx_enable' auf 'true' gesetzt wird (und die verwendete Hardware SIMD Technologie unterstützt), wird die Berechnung für byte Bilder intern unter Verwendung von SIMD Technologie durchgeführt.
cfa_to_rgb kann auf OpenCL Geräten ausgeführt werden. Dabei sollte die Breite des Eingabebildes ein vielfaches von vier (für byte Bilder) bzw. zwei (für uint2 Bilder) betragen, da die Berechnung sonst um ein vielfaches langsamer ist.
Eingabebild.
Ausgabebild.
Art des Farbmosaiks.
Defaultwert: 'bayer_gb'
Werteliste: 'bayer_bg', 'bayer_gb', 'bayer_gr', 'bayer_rg'
Art der Interpolation.
Defaultwert: 'bilinear'
Werteliste: 'bilinear', 'bilinear_dir'
cfa_to_rgb liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind. Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system(::'no_object_result', <Result>:) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
gen_image1_extern, gen_image1, grab_image
Foundation
| Operatoren |