get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3 (Operator)
Name
get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3
— Zugriff auf die Zeiger eines Farbbildes.
Signatur
Herror get_image_pointer3(const Hobject ImageRGB, Hlong* PointerRed, Hlong* PointerGreen, Hlong* PointerBlue, char* Type, Hlong* Width, Hlong* Height)
Herror T_get_image_pointer3(const Hobject ImageRGB, Htuple* PointerRed, Htuple* PointerGreen, Htuple* PointerBlue, Htuple* Type, Htuple* Width, Htuple* Height)
void GetImagePointer3(const HObject& ImageRGB, HTuple* PointerRed, HTuple* PointerGreen, HTuple* PointerBlue, HTuple* Type, HTuple* Width, HTuple* Height)
void HImage::GetImagePointer3(HTuple* PointerRed, HTuple* PointerGreen, HTuple* PointerBlue, HTuple* Type, HTuple* Width, HTuple* Height) const
void HImage::GetImagePointer3(void** PointerRed, void** PointerGreen, void** PointerBlue, HString* Type, Hlong* Width, Hlong* Height) const
static void HOperatorSet.GetImagePointer3(HObject imageRGB, out HTuple pointerRed, out HTuple pointerGreen, out HTuple pointerBlue, out HTuple type, out HTuple width, out HTuple height)
void HImage.GetImagePointer3(out HTuple pointerRed, out HTuple pointerGreen, out HTuple pointerBlue, out HTuple type, out HTuple width, out HTuple height)
void HImage.GetImagePointer3(out IntPtr pointerRed, out IntPtr pointerGreen, out IntPtr pointerBlue, out string type, out int width, out int height)
Beschreibung
get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3
liefert einen C-Pointer auf die
drei Kanäle eines Farbbildes (ImageRGBImageRGBImageRGBImageRGBimageRGB
).
Außerdem wird der Bildtyp (TypeTypeTypeTypetype
= 'byte', 'int2', 'float' etc.)
und die Bildgröße (WidthWidthWidthWidthwidth
und HeightHeightHeightHeightheight
) ausgegeben.
In der Folge ist dann über den Zeiger ein direkter Zugriff auf die
Bilddaten in der HALCON-Datenbank von der HALCON Wirtssprache aus möglich.
Ein Bild ist in HALCON als ein Vektor von Bildzeilen abgelegt.
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.
Die drei Kanäle müssen den gleichen Pixeltyp und die
gleiche Größe haben.
Achtung
Es darf nur ein Bild übergeben werden.
get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3
sollte nur zum Eintragen in neu erzeugte
Bilder verwendet werden, da sonst die Grauwerte von anderen Bildern
überschrieben werden könnten (siehe Relationale Struktur).
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageRGBImageRGBImageRGBImageRGBimageRGB
(input_object) multichannel-image(-array) →
objectHImageHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
Eingabebild.
PointerRedPointerRedPointerRedPointerRedpointerRed
(output_control) pointer(-array) →
HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Zeiger auf die Pixel des ersten Kanals.
PointerGreenPointerGreenPointerGreenPointerGreenpointerGreen
(output_control) pointer(-array) →
HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Zeiger auf die Pixel des zweiten Kanals.
PointerBluePointerBluePointerBluePointerBluepointerBlue
(output_control) pointer(-array) →
HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Zeiger auf die Pixel des dritten Kanals.
TypeTypeTypeTypetype
(output_control) string(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Typ des Bildes.
Werteliste: 'byte'"byte""byte""byte""byte", 'complex'"complex""complex""complex""complex", 'cyclic'"cyclic""cyclic""cyclic""cyclic", 'direction'"direction""direction""direction""direction", 'int1'"int1""int1""int1""int1", 'int2'"int2""int2""int2""int2", 'int4'"int4""int4""int4""int4", 'int8'"int8""int8""int8""int8", 'real'"real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2", '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"
WidthWidthWidthWidthwidth
(output_control) extent.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Breite des Bildes.
HeightHeightHeightHeightheight
(output_control) extent.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe des Bildes.
Ergebnis
get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3
liefert den Wert 2 (H_MSG_TRUE), falls genau ein
Bild übergeben wird.
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>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_imageread_imageReadImageReadImageReadImage
Alternativen
set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayval
,
get_grayvalget_grayvalGetGrayvalGetGrayvalGetGrayval
,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1
Siehe auch
paint_regionpaint_regionPaintRegionPaintRegionPaintRegion
,
paint_graypaint_grayPaintGrayPaintGrayPaintGray
Modul
Foundation