get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1 (Operator)

Name

get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1 — Zugriff auf den Zeiger eines Kanals.

Signatur

get_image_pointer1(Image : : : Pointer, Type, Width, Height)

Herror get_image_pointer1(const Hobject Image, Hlong* Pointer, char* Type, Hlong* Width, Hlong* Height)

Herror T_get_image_pointer1(const Hobject Image, Htuple* Pointer, Htuple* Type, Htuple* Width, Htuple* Height)

void GetImagePointer1(const HObject& Image, HTuple* Pointer, HTuple* Type, HTuple* Width, HTuple* Height)

HTuple HImage::GetImagePointer1(HTuple* Type, HTuple* Width, HTuple* Height) const

void* HImage::GetImagePointer1(HString* Type, Hlong* Width, Hlong* Height) const

static void HOperatorSet.GetImagePointer1(HObject image, out HTuple pointer, out HTuple type, out HTuple width, out HTuple height)

HTuple HImage.GetImagePointer1(out HTuple type, out HTuple width, out HTuple height)

IntPtr HImage.GetImagePointer1(out string type, out int width, out int height)

def get_image_pointer1(image: HObject) -> Tuple[Sequence[int], Sequence[str], Sequence[int], Sequence[int]]

def get_image_pointer1_s(image: HObject) -> Tuple[int, str, int, int]

Beschreibung

get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1get_image_pointer1 liefert einen Pointer auf den ersten Kanal des Bildes ImageImageImageImageimageimage. Außerdem wird der Bildtyp (TypeTypeTypeTypetypetype = '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 verschachtelt, 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.

Achtung

Der von get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1get_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_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_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_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1get_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_image1gen_image1GenImage1GenImage1GenImage1gen_image1. Bei mehrkanaligen Eingabebildern wird der Bildtyp und der Pointer des ersten Kanals zurückgegeben.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)

Eingabebild.

PointerPointerPointerPointerpointerpointer (output_control)  pointer(-array) HTupleSequence[int]HTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Zeiger auf die Bilddaten in der HALCON-Datenbank.

TypeTypeTypeTypetypetype (output_control)  string(-array) HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Typ des Bildes.

Werteliste: 'byte'"byte""byte""byte""byte""byte", 'complex'"complex""complex""complex""complex""complex", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'direction'"direction""direction""direction""direction""direction", 'int1'"int1""int1""int1""int1""int1", 'int2'"int2""int2""int2""int2""int2", 'int4'"int4""int4""int4""int4""int4", 'int8'"int8""int8""int8""int8""int8", 'real'"real""real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2""uint2", 'vector_field_absolute'"vector_field_absolute""vector_field_absolute""vector_field_absolute""vector_field_absolute""vector_field_absolute", 'vector_field_relative'"vector_field_relative""vector_field_relative""vector_field_relative""vector_field_relative""vector_field_relative"

WidthWidthWidthWidthwidthwidth (output_control)  extent.x(-array) HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Bildes.

HeightHeightHeightHeightheightheight (output_control)  extent.y(-array) HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Bildes.

Beispiel (C)

Hobject  Image;
char     typ[128];
Hlong     width,height;
unsigned char *ptr;

read_image(&Image,"fabrik");
get_image_pointer1(Image,(Hlong*)&ptr,typ,&width,&height);

Ergebnis

get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1get_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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_imageread_imageReadImageReadImageReadImageread_image

Alternativen

set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayvalset_grayval, get_grayvalget_grayvalGetGrayvalGetGrayvalGetGrayvalget_grayval, get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3get_image_pointer3, get_image_sizeget_image_sizeGetImageSizeGetImageSizeGetImageSizeget_image_size, get_image_typeget_image_typeGetImageTypeGetImageTypeGetImageTypeget_image_type

Siehe auch

paint_regionpaint_regionPaintRegionPaintRegionPaintRegionpaint_region, paint_graypaint_grayPaintGrayPaintGrayPaintGraypaint_gray

Modul

Foundation