get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3 (Operator)


get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3 — Access the pointers of a colored image.


get_image_pointer3(ImageRGB : : : PointerRed, PointerGreen, PointerBlue, Type, Width, Height)

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)


The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3 returns a C pointer to the three channels of a colored image (ImageRGBImageRGBImageRGBImageRGBimageRGB). Additionally the image type (TypeTypeTypeTypetype = 'byte', 'int2','float' etc.) and the image size (WidthWidthWidthWidthwidth and HeightHeightHeightHeightheight) are returned. Consequently a direct access to the image data in the HALCON database from the HALCON host language via the pointer is possible. An image is stored in HALCON as a vector of image lines. The image types 'complex' and 'vector_type' are handled in a specific way. In particular, 'complex' images are interleaved, i.e., the real and the imaginary parts are alternating, whereas 'vector_field' images consist of two matrices, one for the rows and one for the columns, which are stored in the HALCON database one after the other. The three channels must have the same pixel type and the same size.


Only one image can be passed. The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3 should only be used for entry into newly created images, since otherwise the gray values of other images might be overwritten (see relational structure).

Execution Information


ImageRGBImageRGBImageRGBImageRGBimageRGB (input_object)  multichannel-image(-array) objectHImageHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)

Input image.

PointerRedPointerRedPointerRedPointerRedpointerRed (output_control)  pointer(-array) HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Pointer to the pixels of the first channel.

PointerGreenPointerGreenPointerGreenPointerGreenpointerGreen (output_control)  pointer(-array) HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Pointer to the pixels of the second channel.

PointerBluePointerBluePointerBluePointerBluepointerBlue (output_control)  pointer(-array) HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Pointer to the pixels of the third channel.

TypeTypeTypeTypetype (output_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Type of image.

List of values: '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)

Width of image.

HeightHeightHeightHeightheight (output_control)  extent.y(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of image.


The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3GetImagePointer3 returns the value 2 (H_MSG_TRUE) if exactly one image is passed. The behavior in case of empty input (no input images available) is set via the operator 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>). If necessary an exception is raised.

Possible Predecessors



set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayval, get_grayvalget_grayvalGetGrayvalGetGrayvalGetGrayval, get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1GetImagePointer1

See also

paint_regionpaint_regionPaintRegionPaintRegionPaintRegion, paint_graypaint_grayPaintGrayPaintGrayPaintGray