gen_image3gen_image3GenImage3GenImage3gen_image3 (Operator)
Name
gen_image3gen_image3GenImage3GenImage3gen_image3
— Create an image from three pointers to the pixels (red/green/blue).
Signature
Herror gen_image3(Hobject* ImageRGB, const char* Type, const Hlong Width, const Hlong Height, const Hlong PixelPointerRed, const Hlong PixelPointerGreen, const Hlong PixelPointerBlue)
Herror T_gen_image3(Hobject* ImageRGB, const Htuple Type, const Htuple Width, const Htuple Height, const Htuple PixelPointerRed, const Htuple PixelPointerGreen, const Htuple PixelPointerBlue)
void GenImage3(HObject* ImageRGB, const HTuple& Type, const HTuple& Width, const HTuple& Height, const HTuple& PixelPointerRed, const HTuple& PixelPointerGreen, const HTuple& PixelPointerBlue)
void HImage::GenImage3(const HString& Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue)
void HImage::GenImage3(const char* Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue)
void HImage::GenImage3(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue)
(
Windows only)
static void HOperatorSet.GenImage3(out HObject imageRGB, HTuple type, HTuple width, HTuple height, HTuple pixelPointerRed, HTuple pixelPointerGreen, HTuple pixelPointerBlue)
void HImage.GenImage3(string type, int width, int height, IntPtr pixelPointerRed, IntPtr pixelPointerGreen, IntPtr pixelPointerBlue)
Description
The operator gen_image3gen_image3GenImage3GenImage3gen_image3
creates a three-channel image of the
size WidthWidthWidthwidthwidth
* HeightHeightHeightheightheight
.
The pixels in PixelPointerRedPixelPointerRedPixelPointerRedpixelPointerRedpixel_pointer_red
, PixelPointerGreenPixelPointerGreenPixelPointerGreenpixelPointerGreenpixel_pointer_green
and
PixelPointerBluePixelPointerBluePixelPointerBluepixelPointerBluepixel_pointer_blue
are stored line-sequentially.
The type of the given pixels
(PixelPointerRedPixelPointerRedPixelPointerRedpixelPointerRedpixel_pointer_red
etc.) must correspond to TypeTypeTypetypetype
(see gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const
for a more detailed description of the
pixel types).
The storage for the new image is newly created by HALCON.
Thus, it can be released after the call.
Note that how to pass a pointer value depends on the used operator
signature and programming environment. Make sure to pass the
actual memory address where the image data is stored, not the
address of a pointer variable. Care must be taken not to
truncate 64-bit pointers on 64-bit architectures.
Attention
gen_image3gen_image3GenImage3GenImage3gen_image3
does not check whether the pixels in
PixelPointerRedPixelPointerRedPixelPointerRedpixelPointerRedpixel_pointer_red
,PixelPointerGreenPixelPointerGreenPixelPointerGreenpixelPointerGreenpixel_pointer_green
, and
PixelPointerBluePixelPointerBluePixelPointerBluepixelPointerBluepixel_pointer_blue
are valid or not.
Thus, it must be ensured by the user that they are valid.
Otherwise, the program may crash!
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
(output_object) image →
objectHImageHObjectHObjectHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)
Created image with new image matrix.
TypeTypeTypetypetype
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Pixel type.
Default:
'byte'
"byte"
"byte"
"byte"
"byte"
List of values:
'byte'"byte""byte""byte""byte", '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", 'real'"real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2"
WidthWidthWidthwidthwidth
(input_control) extent.x →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of image.
Default:
512
Suggested values:
128, 256, 512, 1024
Value range:
1
≤
Width
Width
Width
width
width
(lin)
Minimum increment:
1
Recommended increment:
10
HeightHeightHeightheightheight
(input_control) extent.y →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of image.
Default:
512
Suggested values:
128, 256, 512, 1024
Value range:
1
≤
Height
Height
Height
height
height
(lin)
Minimum increment:
1
Recommended increment:
10
PixelPointerRedPixelPointerRedPixelPointerRedpixelPointerRedpixel_pointer_red
(input_control) pointer →
HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to first red value (channel 1).
PixelPointerGreenPixelPointerGreenPixelPointerGreenpixelPointerGreenpixel_pointer_green
(input_control) pointer →
HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to first green value (channel 2).
PixelPointerBluePixelPointerBluePixelPointerBluepixelPointerBluepixel_pointer_blue
(input_control) pointer →
HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to first blue value (channel 3).
Example (C)
void NewRGBImage(Hobject *new)
{
unsigned char red[768*525];
unsigned char green[768*525];
unsigned char blue[768*525];
int r,c;
for (r=0; r<525; r++)
for (c=0; c<768; c++)
{
red[r*768+c] = c % 255;
green[r*768+c] = (767 - c) % 255;
blue[r*768+c] = r % 255;
}
gen_image3(new,"byte",768,525,(Hlong)red,(long)green,(long)blue);
}
main()
{
Hobject rgb;
open_window(0,0,768,525,0,"","",&WindowHandle);
NewRGBImage(&rgb);
disp_color(rgb,WindowHandle);
}
Result
If the parameter values are correct, the operator gen_image3gen_image3GenImage3GenImage3gen_image3
returns the value 2 (
H_MSG_TRUE)
.
Otherwise an exception is raised.
Possible Predecessors
gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const
,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1
Possible Successors
disp_colordisp_colorDispColorDispColordisp_color
Alternatives
gen_image1gen_image1GenImage1GenImage1gen_image1
,
compose3compose3Compose3Compose3compose3
,
gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const
See also
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain
,
paint_graypaint_grayPaintGrayPaintGraypaint_gray
,
paint_regionpaint_regionPaintRegionPaintRegionpaint_region
,
set_grayvalset_grayvalSetGrayvalSetGrayvalset_grayval
,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1
,
decompose3decompose3Decompose3Decompose3decompose3
Module
Foundation