Operator Reference

gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect (Operator)

gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect — Create an image with a rectangular domain from a pointer on the pixels (with storage management).

Signature

Herror gen_image1_rect(Hobject* Image, const Hlong PixelPointer, const Hlong Width, const Hlong Height, const Hlong VerticalPitch, const Hlong HorizontalBitPitch, const Hlong BitsPerPixel, const char* DoCopy, const Hlong ClearProc)

Herror T_gen_image1_rect(Hobject* Image, const Htuple PixelPointer, const Htuple Width, const Htuple Height, const Htuple VerticalPitch, const Htuple HorizontalBitPitch, const Htuple BitsPerPixel, const Htuple DoCopy, const Htuple ClearProc)

void GenImage1Rect(HObject* Image, const HTuple& PixelPointer, const HTuple& Width, const HTuple& Height, const HTuple& VerticalPitch, const HTuple& HorizontalBitPitch, const HTuple& BitsPerPixel, const HTuple& DoCopy, const HTuple& ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const HString& DoCopy, void* ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const char* DoCopy, void* ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const wchar_t* DoCopy, void* ClearProc)   ( Windows only)

def gen_image1_rect(pixel_pointer: int, width: int, height: int, vertical_pitch: int, horizontal_bit_pitch: int, bits_per_pixel: int, do_copy: str, clear_proc: int) -> HObject

Description

The operator gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect creates an image of size (VerticalPitchVerticalPitchVerticalPitchverticalPitchvertical_pitch / (HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitchhorizontal_bit_pitch/8)) * HeightHeightHeightheightheight. The pixels pointed to by PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer are stored line by line. 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.

VerticalPitchVerticalPitchVerticalPitchverticalPitchvertical_pitch determines the distance (in bytes) between pixel m in row n and pixel m in row n+1 inside of memory. All rows of the 'input image' have the same vertical pitch. The width of the output image is VerticalPitchVerticalPitchVerticalPitchverticalPitchvertical_pitch / (HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitchhorizontal_bit_pitch / 8), its height is HeightHeightHeightheightheight. The domain of the output image ImageImageImageimageimage is a rectangle of the size WidthWidthWidthwidthwidth * HeightHeightHeightheightheight. The parameter HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitchhorizontal_bit_pitch is the horizontal distance (in bits) between two neighboring pixels. BitsPerPixelBitsPerPixelBitsPerPixelbitsPerPixelbits_per_pixel is the number of used bits per pixel.

If DoCopyDoCopyDoCopydoCopydo_copy is set 'true'"true""true""true""true", the image data pointed to by PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer is copied and memory for the new image is newly allocated by HALCON. Else the image data is not duplicated and the memory space that PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer points to must be released when deleting the object ImageImageImageimageimage. This is done by the procedure ClearProcClearProcClearProcclearProcclear_proc provided by the caller. This procedure must have the following signature

    void ClearProc(void* ptr);
and will be called using __cdecl calling convention when deleting ImageImageImageimageimage. If the memory shall not be released (in the case of frame grabbers or static memory) a procedure ”without trunk” or the NULL-pointer can be passed. Analogously to the parameter PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer the pointer has to be passed to the procedure depending on the used operator signature and programming environment. If DoCopyDoCopyDoCopydoCopydo_copy is 'true'"true""true""true""true" then ClearProcClearProcClearProcclearProcclear_proc is irrelevant. The operator gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect is symmetrical to get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1Rectget_image_pointer1_rect.

Attention

gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect does not check whether the PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer is valid or not. Thus, it must be ensured by the user that it is 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

ImageImageImageimageimage (output_object)  image objectHImageHObjectHObjectHobject * (byte / uint2 / int4)

Created HALCON image.

PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer (input_control)  pointer HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Pointer to the first pixel.

WidthWidthWidthwidthwidth (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of the 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 the image.

Default: 512

Suggested values: 128, 256, 512, 1024

Value range: 1 ≤ Height Height Height height height (lin)

Minimum increment: 1

Recommended increment: 10

VerticalPitchVerticalPitchVerticalPitchverticalPitchvertical_pitch (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Distance (in bytes) between pixel m in row n and pixel m in row n+1 of the 'input image'.

Restriction: VerticalPitch >= Width * HorizontalBitPitch / 8

HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitchhorizontal_bit_pitch (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Distance between two neighboring pixels in bits .

Default: 8

List of values: 8, 16, 32

BitsPerPixelBitsPerPixelBitsPerPixelbitsPerPixelbits_per_pixel (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of used bits per pixel.

Default: 8

List of values: 8, 9, 10, 11, 12, 13, 14, 15, 16, 32

Restriction: BitsPerPixel <= HorizontalBitPitch

DoCopyDoCopyDoCopydoCopydo_copy (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Copy image data.

Default: 'false' "false" "false" "false" "false"

Suggested values: 'true'"true""true""true""true", 'false'"false""false""false""false"

ClearProcClearProcClearProcclearProcclear_proc (input_control)  pointer HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Pointer to the procedure releasing the memory of the image when deleting the object.

Default: 0

Example (C)

void NewImage(Hobject *new)
{
  unsigned char       *image;
  int                 r,c;

  image = malloc(640*480);
  for (r=0; r<480; r++)
    for (c=0; c<640; c++)
      image[r*640+c] = c % 255;
  gen_image1_rect(new,(Hlong)image,400,480,640,8,8,'false',(long)free);
}

Result

The operator gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect returns the value 2 ( H_MSG_TRUE) if the parameter values are correct. Otherwise an exception is raised.

Possible Successors

get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1Rectget_image_pointer1_rect

Alternatives

gen_image1gen_image1GenImage1GenImage1gen_image1, gen_image1_externgen_image1_externGenImage1ExternGenImage1Externgen_image1_extern, gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const

See also

get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1Rectget_image_pointer1_rect

Module

Foundation