HALCON Reference Manual 10.0.2
Table of Contents / Image / Creation ClassesClassesClasses | | | Operators

gen_image1_externgen_image1_externgen_image1_externGenImage1ExternGenImage1Extern (Operator)

Name

gen_image1_externgen_image1_externgen_image1_externGenImage1ExternGenImage1Extern — Create an image from a pointer on the pixels with storage management.

Signature

gen_image1_extern( : Image : Type, Width, Height, PixelPointer, ClearProc : )

Herror gen_image1_extern(Hobject* Image, const char* Type, const Hlong Width, const Hlong Height, const Hlong PixelPointer, const Hlong ClearProc)

Herror T_gen_image1_extern(Hobject* Image, const Htuple Type, const Htuple Width, const Htuple Height, const Htuple PixelPointer, const Htuple ClearProc)

Herror gen_image1_extern(Hobject* Image, const HTuple& Type, const HTuple& Width, const HTuple& Height, const HTuple& PixelPointer, const HTuple& ClearProc)

HImage HImage::GenImage1Extern(const HTuple& Type, const HTuple& Width, const HTuple& Height, const HTuple& PixelPointer, const HTuple& ClearProc)

void HOperatorSetX.GenImage1Extern(
[out] IHUntypedObjectX*Image, [in] VARIANT Type, [in] VARIANT Width, [in] VARIANT Height, [in] VARIANT PixelPointer, [in] VARIANT ClearProc)

void HImageX.GenImage1Extern(
[in] BSTR Type, [in] Hlong Width, [in] Hlong Height, [in] Hlong PixelPointer, [in] Hlong ClearProc)

static void HOperatorSet.GenImage1Extern(out HObject image, HTuple type, HTuple width, HTuple height, HTuple pixelPointer, HTuple clearProc)

void HImage.GenImage1Extern(string type, int width, int height, IntPtr pixelPointer, IntPtr clearProc)

Description

The operator gen_image1_externgen_image1_externgen_image1_externGenImage1ExternGenImage1Extern creates an image of the size WidthWidthWidthWidthwidth * HeightHeightHeightHeightheight. The pixels in PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer are stored line-sequentially. The type of the given pixels (PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer) must correspond to TypeTypeTypeTypetype. Since the type of the parameter PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer is generic (long) a cast must be used for the call.

The memory for the new image is not newly allocated by HALCON, contrary to gen_image1gen_image1gen_image1GenImage1GenImage1, and thus is not copied either. This means that the memory space that PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer points to must be released by deleting the object ImageImageImageImageimage. This is done by the procedure ClearProcClearProcClearProcClearProcclearProc 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. Analogous to the parameter PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer the pointer has to be passed to the procedure by casting it to long.

Attention

gen_image1_externgen_image1_externgen_image1_externGenImage1ExternGenImage1Extern does not check if enough memory for an image of WidthWidthWidthWidthwidth * HeightHeightHeightHeightheight is allocated in PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer.

Parallelization

Parameters

ImageImageImageImageimage (output_object)  image objectHImageHImageHImageXHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Created HALCON image.

TypeTypeTypeTypetype (input_control)  string HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Pixel type.

Default value: 'byte' "byte" "byte" "byte" "byte"

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

WidthWidthWidthWidthwidth (input_control)  extent.x HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

Width of image.

Default value: 512

Suggested values: 128, 256, 512, 1024

Typical range of values: 1 ≤ Width Width Width Width width ≤ 512 (lin)

Minimum increment: 1

Recommended increment: 10

Restriction: Width >= 1

HeightHeightHeightHeightheight (input_control)  extent.y HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

Height of image.

Default value: 512

Suggested values: 128, 256, 512, 1024

Typical range of values: 1 ≤ Height Height Height Height height ≤ 512 (lin)

Minimum increment: 1

Recommended increment: 10

Restriction: Height >= 1

PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer (input_control)  pointer HTupleHTupleVARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

Pointer to the first gray value.

ClearProcClearProcClearProcClearProcclearProc (input_control)  pointer HTupleHTupleVARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

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

Default value: 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_extern(new,"byte",640,480,(long)image,(long)free);
}

Result

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

Alternatives

gen_image1gen_image1gen_image1GenImage1GenImage1, gen_image_constgen_image_constgen_image_constGenImageConstGenImageConst, get_image_pointer1get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1, gen_image3_externgen_image3_externgen_image3_externGenImage3ExternGenImage3Extern

See also

reduce_domainreduce_domainreduce_domainReduceDomainReduceDomain, paint_graypaint_graypaint_grayPaintGrayPaintGray, paint_regionpaint_regionpaint_regionPaintRegionPaintRegion, set_grayvalset_grayvalset_grayvalSetGrayvalSetGrayval

Module

Foundation


Table of Contents / Image / Creation ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH