get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3get_image_pointer3 (Operator)
get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3get_image_pointer3
— Access the pointers of a colored image.
Signature
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)
def get_image_pointer3(image_rgb: HObject) -> Tuple[Sequence[int], Sequence[int], Sequence[int], Sequence[str], Sequence[int], Sequence[int]]
def get_image_pointer3_s(image_rgb: HObject) -> Tuple[int, int, int, str, int, int]
Description
The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3get_image_pointer3
returns a C pointer to
the three channels of a colored image (ImageRGBImageRGBImageRGBimageRGBimage_rgb
).
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.
Attention
Only one image can be passed.
The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3get_image_pointer3
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
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
ImageRGBImageRGBImageRGBimageRGBimage_rgb
(input_object) multichannel-image(-array) →
objectHImageHObjectHObjectHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
Input image.
PointerRedPointerRedPointerRedpointerRedpointer_red
(output_control) pointer(-array) →
HTupleSequence[int]HTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to the pixels of the first channel.
PointerGreenPointerGreenPointerGreenpointerGreenpointer_green
(output_control) pointer(-array) →
HTupleSequence[int]HTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to the pixels of the second channel.
PointerBluePointerBluePointerBluepointerBluepointer_blue
(output_control) pointer(-array) →
HTupleSequence[int]HTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to the pixels of the third channel.
TypeTypeTypetypetype
(output_control) string(-array) →
HTupleSequence[str]HTupleHtuple (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) →
HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of image.
HeightHeightHeightheightheight
(output_control) extent.y(-array) →
HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of image.
Result
The operator get_image_pointer3get_image_pointer3GetImagePointer3GetImagePointer3get_image_pointer3
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>)set_system("no_object_result",<Result>)
.
If necessary an exception is raised.
Possible Predecessors
read_imageread_imageReadImageReadImageread_image
Alternatives
set_grayvalset_grayvalSetGrayvalSetGrayvalset_grayval
,
get_grayvalget_grayvalGetGrayvalGetGrayvalget_grayval
,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1
See also
paint_regionpaint_regionPaintRegionPaintRegionpaint_region
,
paint_graypaint_grayPaintGrayPaintGraypaint_gray
Module
Foundation