| Operatoren |
gen_image_interleaved — Erzeugen eines dreikanaligen Bildes aus einem Zeiger auf die verschränkten Pixel.
gen_image_interleaved( : ImageRGB : PixelPointer, ColorFormat, OriginalWidth, OriginalHeight, Alignment, Type, ImageWidth, ImageHeight, StartRow, StartColumn, BitsPerChannel, BitShift : )
gen_image_interleaved erzeugt ein dreikanaliges Bild aus einem Eingabebild, dessen Pixel in PixelPointer zeilensequentiell abgelegt sind. Die Größe des Eingabebildes muss in OriginalWidth und OriginalHeight übergeben werden, das Format der verschränkten Pixel in ColorFormat.
Das Ausgabebild bekommt die Größe ImageWidth * ImageHeight. In Verbindung mit den Koordinaten der linken, oberen Ecke StartRow und StartColumn lässt sich jeder beliebige Ausschnitt innerhalb des Eingabebildes erzeugen. Wird an ImageWidth, ImageHeight, StartRow und StartColumn jeweils 0 übergeben, so erhält das Ausgabebild die gleichen Abmessungen wie das Eingabebild.
Es ist zu beachten, dass der Typ Type (siehe gen_image_const) des Ausgabebildes ImageRGB so gewählt sein muss, dass sich die Farbwerte aus dem Eingabebild in ihrem vollen Umfang darstellen lassen. D.h. gen_image_interleaved erlaubt es nicht, aus einem Eingabebild mit 'rgb48' Pixeln ein byte Bild zu erzeugen.
Wird bei den Formaten 'rgb48', 'bgr48', 'rgbx64' und 'bgr64' nicht der volle Umfang von 16 Bit pro Pixel und Kanal ausgeschöpft, so sollte in BitsPerChannel die tatsächlich verwendete Anzahl von Bits übergeben werden. Außerdem können die Pixelwerte aus dem Eingabebild noch um BitShift Bits nach rechts geshiftet werden.
Bei vierkanaligen Eingabebildern in den Formaten 'rgbx', 'bgrx', 'rgbx64' und 'bgrx64' wird der vierte Kanal ignoriert.
Der Speicher für das neue Bild wird von HALCON neu angelegt. Er kann also nach dem Aufruf freigegeben werden. Wie ein Zeigerwert übergeben wird hängt von der benutzten Operatorsignatur und der Programmierumgebung ab. Es ist sicherzustellen, dass die tatsächliche Speicheradresse unter der die Bilddaten gespeichert sind übergeben wird und nicht die Adresse der Zeigervariablen. Es ist darauf zu achten, dass 64-Bit-Zeiger auf 64-Bit-Architekturen nicht beschnitten werden.
Mögliche Werte für ColorFormat:
16 Bit RGB-Tripel (5 Bit pro Pixel und Kanal), wobei das Auffüllbit (X) das erste Bit ist. Das Bitmuster ist XRRRRRGG|GGGBBBBB.
16 Bit BGR-Tripel (5 Bit pro Pixel und Kanal), wobei das Auffüllbit (X) das erste Bit ist. Das Bitmuster ist XBBBBBGG|GGGRRRRR.
16 Bit RGB-Tripel (5 Bit pro Pixel und Kanal), wobei das Auffüllbit (X) das letzte Bit ist. Das Bitmuster ist RRRRRGGG|GGBBBBBX.
16 Bit BGR-Tripel (5 Bit pro Pixel und Kanal), wobei das Auffüllbit (X) das letzte Bit ist. Das Bitmuster ist BBBBBGGG|GGRRRRRX.
16 Bit RGB-Tripel (5 Bit pro Pixel und Kanal, 6 Bit für den Grünkanal). Das Bitmuster ist RRRRRGGG|GGGBBBBB.
16 Bit BGR-Tripel (5 Bit pro Pixel und Kanal, 6 Bit für den Grünkanal). Das Bitmuster ist BBBBBGGG|GGGRRRRR.
24 Bit RGB-Tripel (8 Bit pro Pixel und Kanal)
24 Bit BGR-Tripel (8 Bit pro Pixel und Kanal)
32 Bit RGBX-Quadrupel (8 Bit pro Pixel und Kanal)
32 Bit BGRX-Quadrupel (8 Bit pro Pixel und Kanal)
48 Bit RGB-Tripel (16 Bit pro Pixel und Kanal)
48 Bit BGR-Tripel (16 Bit pro Pixel und Kanal)
64 Bit RGBX-Quadrupel (16 Bit pro Pixel und Kanal)
64 Bit BGRX-Quadrupel (16 Bit pro Pixel und Kanal)
Die Parameterwerte 'rgb555', 'bgr555', 'rgb565', 'bgr565', 'rgb5551' und 'bgr5551' können zudem das Suffix 'le' (Little Endian: Niederwertiges Byte wird zuerst erwartet) oder - was der Standard ist, falls das Suffix weggelassen wird - 'be' (Big Endian: Höherwertiges Byte wird zuerst erwartet) erhalten. Zum Beispiel ist das Bitmuster für ColorFormat = 'rgb555' XRRRRRGG|GGGBBBBB, während das Bitmuster für ColorFormat = 'rgb555le' GGGBBBBB|XRRRRRGG ist.
Erzeugtes Bild mit neuer Bildmatrix.
Zeiger auf die verschränkten Pixel.
Format der Eingabepixel.
Defaultwert: 'rgb'
Werteliste: 'bgr', 'bgr48', 'bgr555', 'bgr5551', 'bgr5551be', 'bgr5551le', 'bgr555be', 'bgr555le', 'bgr565', 'bgr565be', 'bgr565le', 'bgrx', 'bgrx64', 'rgb', 'rgb48', 'rgb555', 'rgb5551', 'rgb5551be', 'rgb5551le', 'rgb555be', 'rgb555le', 'rgb565', 'rgb565be', 'rgb565le', 'rgbx', 'rgbx64'
Breite des Eingabebildes.
Defaultwert: 512
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 1 ≤ OriginalWidth (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Höhe des Eingabebildes.
Defaultwert: 512
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 1 ≤ OriginalHeight (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Reserviert.
Pixeltyp des Ausgabebildes.
Defaultwert: 'byte'
Werteliste: 'byte', 'uint2'
Breite des Ausgabebildes.
Defaultwert: 0
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 0 ≤ ImageWidth (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Höhe des Ausgabebildes.
Defaultwert: 0
Wertevorschläge: 128, 256, 512, 1024
Typischer Wertebereich: 0 ≤ ImageHeight (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Zeilennummer der oberen linken Ecke des gewünschten Bildausschnittes.
Defaultwert: 0
Wertevorschläge: -1, 0
Spaltennummer der oberen linken Ecke des gewünschten Bildausschnittes.
Defaultwert: 0
Wertevorschläge: -1, 0
Anzahl benutzter Bits pro Pixel und Kanal des Ausgabebildes (-1: Alle Bits werden benutzt).
Defaultwert: -1
Wertevorschläge: 5, 8, 10, 12, 16, -1
Anzahl der Bits, um die die Farbwerte der Eingabepixel nach rechts geshiftet werden (nur für uint2 Bilder).
Defaultwert: 0
Wertevorschläge: 0, 2, 4, 6
Sind die Parameterwerte korrekt, dann liefert gen_image_interleaved den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.
reduce_domain, paint_gray, paint_region, set_grayval, gen_image_const
Foundation
| Operatoren |