| Operatoren |
get_image_pointer1 — Zugriff auf den Zeiger eines Kanals.
get_image_pointer1 liefert einen Pointer auf den ersten Kanal des Bildes Image. Außerdem wird der Bildtyp (Type = 'byte', 'int2', 'uint2' etc.) und die Bildgröße (Breite und Höhe) ausgegeben. In der Folge ist dann über den Zeiger ein direkter Zugriff auf die Bilddaten in der HALCON-Datenbank von der Programmiersprache aus möglich, in der HALCON verwendet wird. Ein Bild wird in HALCON zeilenweise linearisiert abgespeichert. Die Bildtypen 'complex' und 'vector_field' bilden Sonderfälle. Bilder vom Typ 'complex' sind interleaved, d.h., die Real- und Imaginärteile werden abwechselnd abgespeichert. Bilder vom Typ 'vector_field' bestehen dagegen aus zwei Matrizen, eine für die Zeilen und eine für die Spalten, die nacheinander in der HALCON-Datenbank liegen.
Der von get_image_pointer1 zurückgegebene Zeiger darf nur so lange verwendet werden, solange das Bildobjekt existiert. Das ist der Fall, solange die zugehörige Variable in der Programmiersprache, in der HALCON verwendet wird, gültig ist. Wird dies nicht berücksichtigt, kann es zu unerwartetem Verhalten und zu Programmabstürzen kommen.
Werden über den Zeiger Daten in ein existierendes Bild geschrieben, so werden alle Bildobjekte modifiziert, die das Bild referenzieren. Wenn z.B. mit reduce_domain der Definitionsbereich eines Bildes eingeschränkt wird, so benutzen das originale Bildobjekt mit dem vollen Definitionsbereich und das Bildobjekt mit dem eingeschränkten Definitionsbereich dieselbe Bildmatrix (d.h. get_image_pointer1 liefert für die beiden Bilder denselben Zeiger zurück). Falls also eines der beiden Bilder in diesem Beispiel überschrieben wird, werden beide Bildobjekte modifiziert. Falls der Zeiger in der Programmiersprache, in der HALCON verwendet wird, dazu benutzt wird, Bilddaten zu schreiben, sollten daher die Bilddaten in ein Bildobjekt geschrieben werden, das neu erzeugt worden ist, z.B. mit gen_image1. Bei mehrkanaligen Eingabebildern wird der Bildtyp und der Pointer des ersten Kanals zurückgegeben.
Eingabebild.
Zeiger auf die Bilddaten in der HALCON-Datenbank.
Typ des Bildes.
Werteliste: 'byte', 'complex', 'cyclic', 'direction', 'int1', 'int2', 'int4', 'int8', 'real', 'uint2', 'vector_field_absolute', 'vector_field_relative'
Breite des Bildes.
Höhe des Bildes.
Hobject Image; char typ[128]; Hlong width,height; unsigned char *ptr; read_image(&Image,"fabrik"); get_image_pointer1(Image,(Hlong*)&ptr,typ,&width,&height);
get_image_pointer1 liefert den Wert 2 (H_MSG_TRUE), falls genau ein Bild übergeben wurde. 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.
set_grayval, get_grayval, get_image_pointer3, get_image_size, get_image_type
Foundation
| Operatoren |