Skip to content

gen_image3GenImage3GenImage3gen_image3gen_image3🔗

Short description🔗

gen_image3GenImage3GenImage3gen_image3gen_image3 — Create an image from three pointers to the pixels (red/green/blue).

Signature🔗

gen_image3( out image ImageRGB, string Type, extent.x Width, extent.y Height, pointer PixelPointerRed, pointer PixelPointerGreen, pointer PixelPointerBlue )void GenImage3( HObject* ImageRGB, const HTuple& Type, const HTuple& Width, const HTuple& Height, const HTuple& PixelPointerRed, const HTuple& PixelPointerGreen, const HTuple& PixelPointerBlue )static void HOperatorSet.GenImage3( out HObject imageRGB, HTuple type, HTuple width, HTuple height, HTuple pixelPointerRed, HTuple pixelPointerGreen, HTuple pixelPointerBlue )def gen_image3( type: str, width: int, height: int, pixel_pointer_red: int, pixel_pointer_green: int, pixel_pointer_blue: int ) -> HObject

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 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)

void HImage.GenImage3( string type, int width, int height, IntPtr pixelPointerRed, IntPtr pixelPointerGreen, IntPtr pixelPointerBlue )

Description🔗

The operator gen_image3GenImage3 creates a three-channel image of the size Widthwidthwidth * Heightheightheight. The pixels in PixelPointerRedpixelPointerRedpixel_pointer_red, PixelPointerGreenpixelPointerGreenpixel_pointer_green and PixelPointerBluepixelPointerBluepixel_pointer_blue are stored line-sequentially. The type of the given pixels (PixelPointerRedpixelPointerRedpixel_pointer_red etc.) must correspond to Typetypetype (see gen_image_constGenImageConst 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_image3GenImage3 does not check whether the pixels in PixelPointerRedpixelPointerRedpixel_pointer_red,PixelPointerGreenpixelPointerGreenpixel_pointer_green, and PixelPointerBluepixelPointerBluepixel_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🔗

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🔗

ImageRGBimageRGBimage_rgb (output_object) image → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)Hobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Created image with new image matrix.

Typetypetype (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Pixel type.

Default: 'byte'"byte"
List of values: 'byte', 'cyclic', 'direction', 'int1', 'int2', 'int4', 'real', 'uint2'"byte", "cyclic", "direction", "int1", "int2", "int4", "real", "uint2"

Widthwidthwidth (input_control) extent.x → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Width of image.

Default: 512512
Suggested values: 128, 256, 512, 1024128, 256, 512, 1024
Value range: 1 ≤ Width (lin)
Minimum increment: 1
Recommended increment: 10

Heightheightheight (input_control) extent.y → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Height of image.

Default: 512512
Suggested values: 128, 256, 512, 1024128, 256, 512, 1024
Value range: 1 ≤ Height (lin)
Minimum increment: 1
Recommended increment: 10

PixelPointerRedpixelPointerRedpixel_pointer_red (input_control) pointer → (integer)HTuple (Hlong)HTuple (IntPtr)intHtuple (Hlong)

Pointer to first red value (channel 1).

PixelPointerGreenpixelPointerGreenpixel_pointer_green (input_control) pointer → (integer)HTuple (Hlong)HTuple (IntPtr)intHtuple (Hlong)

Pointer to first green value (channel 2).

PixelPointerBluepixelPointerBluepixel_pointer_blue (input_control) pointer → (integer)HTuple (Hlong)HTuple (IntPtr)intHtuple (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_image3GenImage3 returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

gen_image_constGenImageConst, get_image_pointer1GetImagePointer1

Possible successors

disp_colorDispColor

Alternatives

gen_image1GenImage1, compose3Compose3, gen_image_constGenImageConst

See also

reduce_domainReduceDomain, paint_grayPaintGray, paint_regionPaintRegion, set_grayvalSetGrayval, get_image_pointer1GetImagePointer1, decompose3Decompose3

Module🔗

Foundation