gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rectgen_image1_rect (Operator)

Name

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

Signature

gen_image1_rect( : Image : PixelPointer, Width, Height, VerticalPitch, HorizontalBitPitch, BitsPerPixel, DoCopy, ClearProc : )

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)

static void HOperatorSet.GenImage1Rect(out HObject image, HTuple pixelPointer, HTuple width, HTuple height, HTuple verticalPitch, HTuple horizontalBitPitch, HTuple bitsPerPixel, HTuple doCopy, HTuple clearProc)

void HImage.GenImage1Rect(IntPtr pixelPointer, int width, int height, int verticalPitch, int horizontalBitPitch, int bitsPerPixel, string doCopy, IntPtr clearProc)

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

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