Herror ::gen_image3 (
    Hobject *ImageRGB,
    const HTuple &Type,
    const HTuple &Width,
    const HTuple &Height,
    const HTuple &PixelPointerRed,
    const HTuple &PixelPointerGreen,
    const HTuple &PixelPointerBlue
)
HImage HImage::GenImage3 (
    const HTuple &Type,
    const HTuple &Width,
    const HTuple &Height,
    const HTuple &PixelPointerRed,
    const HTuple &PixelPointerGreen,
    const HTuple &PixelPointerBlue
)

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

The operator ::gen_image3 creates a three-channel image of the size Width * Height. The pixels in PixelPointerRed, PixelPointerGreen and PixelPointerBlue are stored line-sequentially. The type of the given pixels (PixelPointerRed etc.) must correspond to the name of the pixels (Type). The storage for the new image is newly created by HALCON . Thus, it can be released after the call. Since the type of the parameters (PixelPointerRed etc.) is generic (long) a ``cast'' must be used for the call.


Parameters

ImageRGB (output_object)
image -> Hobject * : HImage
Created image with new image matrix.

Type (input_control)
string -> HTuple.char *
Pixel type.
Default value: 'byte'
List of values: 'int1', 'int2', 'int4', 'byte', 'real', 'direction', 'cyclic'

Width (input_control)
extent.x -> HTuple.long
Width of image.
Default value: 512
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 <= Width <= 512 (lin)
Minimum increment: 1
Recommended increment: 10

Height (input_control)
extent.y -> HTuple.long
Height of image.
Default value: 512
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 <= Height <= 512 (lin)
Minimum increment: 1
Recommended increment: 10

PixelPointerRed (input_control)
integer -> HTuple.long
Pointer to first red value (channel 1).

PixelPointerGreen (input_control)
integer -> HTuple.long
Pointer to first green value (channel 2).

PixelPointerBlue (input_control)
integer -> HTuple.long
Pointer to first blue value (channel 3).


Example
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,(long)red,(long)green,(long)blue);
}

main()
{
  Hobject  rgb;
  open_window(0,0,768,525,0,"","",&WindowHandle);
  NewRGBImage(&rgb);
  disp_color(rgb,WindowHandle);
  clear_obj(rgb);
}

Result

If the parameter values are correct, the operator ::gen_image3 returns the value H_MSG_TRUE. Otherwise an exception handling is raised.


Possible Predecessors

::gen_image_const, ::get_image_pointer1


Possible Successors

::disp_color


Alternatives

::gen_image1, ::compose3, ::gen_image_const


See also

::reduce_domain, ::paint_gray, ::paint_region, ::set_grayval, ::get_image_pointer1, ::decompose3


Module

Image / region / XLD management



Copyright © 1996-2002 MVTec Software GmbH