read_sequence
— Einlesen von Bildern.
read_sequence( : Image : HeaderSize, SourceWidth, SourceHeight, StartRow, StartColumn, DestWidth, DestHeight, PixelType, BitOrder, ByteOrder, Pad, Index, FileName : )
read_sequence
liest Bilddaten, die unformatiert vorliegen,
aus einer Datei und liefert ein „passendes“ Bild zurück. Die
Bilddaten müssen dabei Pixel für Pixel zeilenweise hintereinander
abgespeichert sein.
Ein etwaiger Datei-Header (mit Länge HeaderSize
Bytes)
wird übersprungen. Die Parameter SourceWidth
und
SourceHeight
geben die Größe des Bildes auf Datei an.
DestWidth
und DestHeight
geben an, wie groß das
eingelesene Bild sein soll. Im einfachsten Fall stimmen diese
Parameter überein. Es können aber auch Auschnitte eingelesen
werden. Dazu kann mittels StartRow
und
StartColumn
die obere linke Ecke des gewünschten
Bildausschnitts festgelegt werden.
An Pixeltypen werden 'bit' , 'byte' ,
'short' (16 Bit, ohne Vorzeichen), 'signed_short'
(16 Bit, mit Vorzeichen), 'long' (32 Bit, mit Vorzeichen),
'swapped_long' (32 Bit, mit vertauschten Halbwörtern) und
'real' (32 Bit Gleitkommazahlen) (unterstützt. Weiter
erlaubt read_sequence
die Extraktion von Komponenten eines
RGB Bildes, sofern für jedes Pixel ein Tripel von drei Bytes (in
der Reihenfolge „rot“, „grün“, „blau“) in der Bilddatei
abgelegt wurde. Für die Rotkomponente ist dann als Pixeltyp
'r_byte' und entsprechend für die Grün- und
Blaukomponente 'g_byte' bzw. 'b_byte' zu wählen.
Für die Bitreihenfolge (BitOrder
) kann 'MSBFirst'
(most significant bit first) bzw. die Umkehrung davon
('LSBFirst' ) gewählt werden. Analog dazu werden auch die
Bytereihenfolgen (ByteOrder
) 'MSBFirst' (most
significant byte first) bzw. 'LSBFirst'
verarbeitet. Schließlich lässt sich noch ein Alignement
(Pad
) am Zeilenende einstellen: 'byte' ,
'short' oder 'long' . Falls in der Datei eine
ganze Bildsequenz abgelegt ist, erlaubt der Parameter Index
die Wahl eines Einzelbildes (beginnend mit Index 1).
Bilddateien werden im aktuellen Directory (vorgegeben durch die
Betriebssystemumgebung) und im Bilderdirectory von HALCON
gesucht. Das Bilderdirectory von HALCON ist in einer unixartigen Umgebung
auf '.' und '/usr/local/halcon/images'
voreingestellt und kann mit dem Befehl set_system
gesetzt
werden. Es kann mehr als ein Bilderdirectory angegeben werden.
Dies geschieht, indem man die einzelnen Directories durch einen
Doppelpunkt trennt.
Weiterhin kann der Suchpfad mit der Environment-Variablen HALCONIMAGES gesetzt werden (gleicher Aufbau wie bei 'image_dir' ). Beispiel:
setenv HALCONIMAGES "/usr/images:/usr/local/halcon/images"
Ebenso sucht HALCON die Bilder in dem Unter-Directory '"`images"' (Bilder für die Programmbeispiele). Für das HALCON-Directory wird die Environment-Variable HALCONROOT verwendet.
Falls Dateien vom Pixeltyp 'real' eingelesen werden und die Bytereihenfolge falsch (d.h. nicht wie die Daten in der Datei gespeichert sind) gewählt wird, kann es zu Programmfehlern oder sogar Abstürzen aufgrund von Gleitkomma-Ausnahmebehandlungen kommen.
Image
(output_object) image →
object (byte / int2 / uint2 / int4)
Eingelesenes Bild.
HeaderSize
(input_control) integer →
(integer)
Anzahl Bytes für Dateikopf.
Defaultwert: 0
Typischer Wertebereich: 0
≤
HeaderSize
SourceWidth
(input_control) extent.x →
(integer)
Anzahl Bildspalten des Bildes auf Datei.
Defaultwert: 512
Typischer Wertebereich: 1
≤
SourceWidth
SourceHeight
(input_control) extent.y →
(integer)
Anzahl Bildzeilen des Bildes auf Datei.
Defaultwert: 512
Typischer Wertebereich: 1
≤
SourceHeight
StartRow
(input_control) point.y →
(integer)
Startpunkt Bildausschnitt (Zeile).
Defaultwert: 0
Typischer Wertebereich: 0
≤
StartRow
Restriktion: StartRow < SourceHeight
StartColumn
(input_control) point.x →
(integer)
Startpunkt Bildausschnitt (Spalte).
Defaultwert: 0
Typischer Wertebereich: 0
≤
StartColumn
Restriktion: StartColumn < SourceWidth
DestWidth
(input_control) extent.x →
(integer)
Anzahl Bildspalten des erzeugten Bildes.
Defaultwert: 512
Typischer Wertebereich: 1
≤
DestWidth
Restriktion: DestWidth <= SourceWidth
DestHeight
(input_control) extent.y →
(integer)
Anzahl Bildzeilen des erzeugten Bildes.
Defaultwert: 512
Typischer Wertebereich: 1
≤
DestHeight
Restriktion: DestHeight <= SourceHeight
PixelType
(input_control) string →
(string)
Art der Pixelwerte.
Defaultwert: 'byte'
Werteliste: 'b_byte' , 'bit' , 'byte' , 'g_byte' , 'long' , 'r_byte' , 'real' , 'short' , 'signed_short' , 'swapped_long'
BitOrder
(input_control) string →
(string)
Reihenfolge der Bits innerhalb eines Bytes.
Defaultwert: 'MSBFirst'
Werteliste: 'LSBFirst' , 'MSBFirst'
ByteOrder
(input_control) string →
(string)
Reihenfolge der Bytes innerhalb einer 'short'-Einheit.
Defaultwert: 'MSBFirst'
Werteliste: 'LSBFirst' , 'MSBFirst'
Pad
(input_control) string →
(string)
Dateneinheiten innerhalb einer Bildzeile (Alignement).
Defaultwert: 'byte'
Werteliste: 'byte' , 'long' , 'short'
Index
(input_control) integer →
(integer)
Nummer des Bildes innerhalb der Datei.
Defaultwert: 1
Typischer Wertebereich: 1
≤
Index
(lin)
FileName
(input_control) filename.read →
(string)
Name der einzulesenden Datei.
Sind die Parameterwerte korrekt, dann liefert read_sequence
den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung
durchgeführt.
disp_image
,
count_channels
,
decompose3
,
write_image
,
rgb1_to_gray
Foundation