gen_image_interleavedπ
Short descriptionπ
gen_image_interleaved β Create a three-channel image from a pointer to the interleaved pixels.
Signatureπ
gen_image_interleaved( out image ImageRGB, pointer PixelPointer, string ColorFormat, extent.x OriginalWidth, extent.y OriginalHeight, integer Alignment, string Type, rectangle.extent.x ImageWidth, rectangle.extent.y ImageHeight, rectangle.origin.y StartRow, rectangle.origin.x StartColumn, integer BitsPerChannel, integer BitShift )
Descriptionπ
The operator gen_image_interleaved creates a three-channel image
from an input image, whose pixels are stored line-sequentially in
PixelPointer. The size of the input image has to be passed in
OriginalWidth and OriginalHeight, the format of the
interleaved pixels in ColorFormat.
The output image will be sized
ImageWidth * ImageHeight. Together with the
coordinates of upper left corner StartRow and
StartColumn any section of the input image can be extracted.
When a 0 is passed to ImageWidth, ImageHeight,
StartRow, and StartColumn, the output image will have the
same dimensions as the input image.
Note that the image type Type (see gen_image_const)
of the output image ImageRGB
has to be chosen such that the whole range of possible color values of the
input image can be represented. I.e. gen_image_interleaved does not
allow to create a byte image from an input image with ColorFormat
'rgb48'.
When the formats 'rgb48', 'bgr48', 'rgbx64', and
'bgr64' do not use the full range of 16 bits per channel and pixel,
the number of actually used bits should be passed in BitsPerChannel.
Furthermore, the pixel values of the input image can be shifted by
BitShift bits to the right.
The fourth channel of four-channel input images in the formats 'rgbx', 'bgrx', 'rgbx64', and 'bgrx64' is simply discarded.
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.
Possible values for ColorFormat:
-
βrgb555β: 16 bit rgb triple (5 bit per pixel and channel), the padding bit (X) being the first bit. The bit pattern is XRRRRRGG|GGGBBBBB.
-
βbgr555β: 16 bit bgr triple (5 bit per pixel and channel), the padding bit (X) being the first bit. The bit pattern is XBBBBBGG|GGGRRRRR.
-
βrgb5551β: 16 bit rgb triple (5 bit per pixel and channel), the padding bit (X) being the last bit. The bit pattern is RRRRRGGG|GGBBBBBX.
-
βbgr5551β: 16 bit bgr triple (5 bit per pixel and channel), the padding bit (X) being the last bit. The bit pattern is BBBBBGGG|GGRRRRRX.
-
βrgb565β: 16 bit rgb triple (5 bit per pixel and channel, 6 bit for the green channel). The bit pattern is RRRRRGGG|GGGBBBBB.
-
βbgr565β: 16 bit bgr triple (5 bit per pixel and channel, 6 bit for the green channel). The bit pattern is BBBBBGGG|GGGRRRRR.
-
βrgbβ: 24 bit rgb triple (8 bit per pixel and channel)
-
βbgrβ: 24 bit bgr triple (8 bit per pixel and channel)
-
βrgbxβ: 32 bit rgb quadruple (8 bit per pixel and channel)
-
βbgrxβ: 32 bit bgr quadruple (8 bit per pixel and channel)
-
βrgb48β: 48 bit rgb triple (16 bit per pixel and channel)
-
βbgr48β: 48 bit bgr triple (16 bit per pixel and channel)
-
βrgbx64β: 64 bit rgb quadruple (16 bit per pixel and channel)
-
βbgrx64β: 64 bit bgr quadruple (16 bit per pixel and channel)
The values 'rgb555', 'bgr555', 'rgb565',
'bgr565', 'rgb5551' and 'bgr5551' can be used with the
suffix βleβ (Little Endian: Lower byte is expected first) or - which is
the default if the suffix is omitted - βbeβ (Big Endian: Higher byte is
expected first). For example,
the bit pattern for
ColorFormat = 'rgb555' is XRRRRRGG|GGGBBBBB, while the bit
pattern for ColorFormat = 'rgb555le' is GGGBBBBB|XRRRRRGG.
Attentionπ
gen_image_interleaved does not check whether the
PixelPointer is valid or not.
Thus, it must be ensured by the user that it is 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).
-
Automatically parallelized on internal data level.
Parametersπ
ImageRGB (output_object) image β object (byte / uint2)
Created image with new image matrix.
PixelPointer (input_control) pointer β (integer)
Pointer to interleaved pixels.
ColorFormat (input_control) string β (string)
Format of the input pixels.
Default: 'rgb'
List of values: 'bgr', 'bgr48', 'bgr555', 'bgr5551', 'bgr5551be', 'bgr5551le', 'bgr555be', 'bgr555le', 'bgr565', 'bgr565be', 'bgr565le', 'bgrx', 'bgrx64', 'rgb', 'rgb48', 'rgb555', 'rgb5551', 'rgb5551be', 'rgb5551le', 'rgb555be', 'rgb555le', 'rgb565', 'rgb565be', 'rgb565le', 'rgbx', 'rgbx64'
OriginalWidth (input_control) extent.x β (integer)
Width of input image.
Default: 512
Suggested values: 128, 256, 512, 1024
Value range: 1 β€ OriginalWidth (lin)
Minimum increment: 1
Recommended increment: 10
OriginalHeight (input_control) extent.y β (integer)
Height of input image.
Default: 512
Suggested values: 128, 256, 512, 1024
Value range: 1 β€ OriginalHeight (lin)
Minimum increment: 1
Recommended increment: 10
Alignment (input_control) integer β (integer)
Reserved.
Type (input_control) string β (string)
Pixel type of output image.
Default: 'byte'
List of values: 'byte', 'uint2'
ImageWidth (input_control) rectangle.extent.x β (integer)
Width of output image.
Default: 0
Suggested values: 128, 256, 512, 1024
Value range: 0 β€ ImageWidth (lin)
Minimum increment: 1
Recommended increment: 10
ImageHeight (input_control) rectangle.extent.y β (integer)
Height of output image.
Default: 0
Suggested values: 128, 256, 512, 1024
Value range: 0 β€ ImageHeight (lin)
Minimum increment: 1
Recommended increment: 10
StartRow (input_control) rectangle.origin.y β (integer)
Line number of upper left corner of desired image part.
Default: 0
Suggested values: -1, 0
StartColumn (input_control) rectangle.origin.x β (integer)
Column number of upper left corner of desired image part.
Default: 0
Suggested values: -1, 0
BitsPerChannel (input_control) integer β (integer)
Number of used bits per pixel and channel of the output image (-1: All bits are used).
Default: -1
Suggested values: 5, 8, 10, 12, 16, -1
BitShift (input_control) integer β (integer)
Number of bits that the color values of the input pixels are shifted to the right (only uint2 images).
Default: 0
Suggested values: 0, 2, 4, 6
Resultπ
If the parameter values are correct, the operator
gen_image_interleaved returns the value 2 (H_MSG_TRUE). Otherwise an
exception is raised.
Combinations with other operatorsπ
Combinations
Possible successors
See also
reduce_domain, paint_gray, paint_region, set_grayval, gen_image_const
Moduleπ
Foundation