gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved (算子)
名称
gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved — 从指向交错像素的指针创建三通道图像。
签名
gen_image_interleaved( : ImageRGB : PixelPointer, ColorFormat, OriginalWidth, OriginalHeight, Alignment, Type, ImageWidth, ImageHeight, StartRow, StartColumn, BitsPerChannel, BitShift : )
Herror gen_image_interleaved(Hobject* ImageRGB, const Hlong PixelPointer, const char* ColorFormat, const Hlong OriginalWidth, const Hlong OriginalHeight, const Hlong Alignment, const char* Type, const Hlong ImageWidth, const Hlong ImageHeight, const Hlong StartRow, const Hlong StartColumn, const Hlong BitsPerChannel, const Hlong BitShift)
Herror T_gen_image_interleaved(Hobject* ImageRGB, const Htuple PixelPointer, const Htuple ColorFormat, const Htuple OriginalWidth, const Htuple OriginalHeight, const Htuple Alignment, const Htuple Type, const Htuple ImageWidth, const Htuple ImageHeight, const Htuple StartRow, const Htuple StartColumn, const Htuple BitsPerChannel, const Htuple BitShift)
void GenImageInterleaved(HObject* ImageRGB, const HTuple& PixelPointer, const HTuple& ColorFormat, const HTuple& OriginalWidth, const HTuple& OriginalHeight, const HTuple& Alignment, const HTuple& Type, const HTuple& ImageWidth, const HTuple& ImageHeight, const HTuple& StartRow, const HTuple& StartColumn, const HTuple& BitsPerChannel, const HTuple& BitShift)
void HImage::GenImageInterleaved(void* PixelPointer, const HString& ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const HString& Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift)
void HImage::GenImageInterleaved(void* PixelPointer, const char* ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const char* Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift)
void HImage::GenImageInterleaved(void* PixelPointer, const wchar_t* ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const wchar_t* Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift)
(
Windows only)
static void HOperatorSet.GenImageInterleaved(out HObject imageRGB, HTuple pixelPointer, HTuple colorFormat, HTuple originalWidth, HTuple originalHeight, HTuple alignment, HTuple type, HTuple imageWidth, HTuple imageHeight, HTuple startRow, HTuple startColumn, HTuple bitsPerChannel, HTuple bitShift)
void HImage.GenImageInterleaved(IntPtr pixelPointer, string colorFormat, int originalWidth, int originalHeight, int alignment, string type, int imageWidth, int imageHeight, int startRow, int startColumn, int bitsPerChannel, int bitShift)
def gen_image_interleaved(pixel_pointer: int, color_format: str, original_width: int, original_height: int, alignment: int, type: str, image_width: int, image_height: int, start_row: int, start_column: int, bits_per_channel: int, bit_shift: int) -> HObject
描述
算子 gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved creates a three-channel image
from an input image, whose pixels are stored line-sequentially in
PixelPointerPixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer. The size of the input image has to be passed in
OriginalWidthOriginalWidthOriginalWidthOriginalWidthoriginalWidthoriginal_width and OriginalHeightOriginalHeightOriginalHeightOriginalHeightoriginalHeightoriginal_height, the format of the
interleaved pixels in ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format。
The output image will be sized
ImageWidthImageWidthImageWidthImageWidthimageWidthimage_width * ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height. Together with the
coordinates of upper left corner StartRowStartRowStartRowStartRowstartRowstart_row and
StartColumnStartColumnStartColumnStartColumnstartColumnstart_column any section of the input image can be extracted.
When a 0 is passed to ImageWidthImageWidthImageWidthImageWidthimageWidthimage_width, ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height,
StartRowStartRowStartRowStartRowstartRowstart_row, and StartColumnStartColumnStartColumnStartColumnstartColumnstart_column, the output image will have the
same dimensions as the input image.
Note that the image type TypeTypeTypeTypetypetype (see gen_image_constgen_image_constGenImageConstGenImageConstGenImageConstgen_image_const)
of the output image ImageRGBImageRGBImageRGBImageRGBimageRGBimage_rgb
has to be chosen such that the whole range of possible color values of the
input image can be represented. I.e. gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved does not
allow to create a byte image from an input image with ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format
'rgb48'"rgb48""rgb48""rgb48""rgb48""rgb48".
When the formats 'rgb48'"rgb48""rgb48""rgb48""rgb48""rgb48", 'bgr48'"bgr48""bgr48""bgr48""bgr48""bgr48", 'rgbx64'"rgbx64""rgbx64""rgbx64""rgbx64""rgbx64", and
'bgr64'"bgr64""bgr64""bgr64""bgr64""bgr64" do not use the full range of 16 bits per channel and pixel,
the number of actually used bits should be passed in BitsPerChannelBitsPerChannelBitsPerChannelBitsPerChannelbitsPerChannelbits_per_channel.
Furthermore, the pixel values of the input image can be shifted by
BitShiftBitShiftBitShiftBitShiftbitShiftbit_shift bits to the right.
The fourth channel of four-channel input images in the formats 'rgbx'"rgbx""rgbx""rgbx""rgbx""rgbx",
'bgrx'"bgrx""bgrx""bgrx""bgrx""bgrx", 'rgbx64'"rgbx64""rgbx64""rgbx64""rgbx64""rgbx64", and 'bgrx64'"bgrx64""bgrx64""bgrx64""bgrx64""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 ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format:
- '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'"rgb555""rgb555""rgb555""rgb555""rgb555", 'bgr555'"bgr555""bgr555""bgr555""bgr555""bgr555", 'rgb565'"rgb565""rgb565""rgb565""rgb565""rgb565",
'bgr565'"bgr565""bgr565""bgr565""bgr565""bgr565", 'rgb5551'"rgb5551""rgb5551""rgb5551""rgb5551""rgb5551" and 'bgr5551'"bgr5551""bgr5551""bgr5551""bgr5551""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
ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format = 'rgb555'"rgb555""rgb555""rgb555""rgb555""rgb555" is XRRRRRGG|GGGBBBBB, while the bit
pattern for ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format = 'rgb555le'"rgb555le""rgb555le""rgb555le""rgb555le""rgb555le" is GGGBBBBB|XRRRRRGG.
注意
gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved does not check whether the
PixelPointerPixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer is valid or not.
Thus, it must be ensured by the user that it is valid.
Otherwise, the program may crash!
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在内部数据级别上自动并行化。
参数
ImageRGBImageRGBImageRGBImageRGBimageRGBimage_rgb (输出对象) image → objectHImageHObjectHImageHobject * (byte / uint2)
Created image with new image matrix.
PixelPointerPixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer (输入控制) pointer → HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Pointer to interleaved pixels.
ColorFormatColorFormatColorFormatColorFormatcolorFormatcolor_format (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Format of the input pixels.
默认值:
'rgb'
"rgb"
"rgb"
"rgb"
"rgb"
"rgb"
值列表:
'bgr'"bgr""bgr""bgr""bgr""bgr", 'bgr48'"bgr48""bgr48""bgr48""bgr48""bgr48", 'bgr555'"bgr555""bgr555""bgr555""bgr555""bgr555", 'bgr5551'"bgr5551""bgr5551""bgr5551""bgr5551""bgr5551", 'bgr5551be'"bgr5551be""bgr5551be""bgr5551be""bgr5551be""bgr5551be", 'bgr5551le'"bgr5551le""bgr5551le""bgr5551le""bgr5551le""bgr5551le", 'bgr555be'"bgr555be""bgr555be""bgr555be""bgr555be""bgr555be", 'bgr555le'"bgr555le""bgr555le""bgr555le""bgr555le""bgr555le", 'bgr565'"bgr565""bgr565""bgr565""bgr565""bgr565", 'bgr565be'"bgr565be""bgr565be""bgr565be""bgr565be""bgr565be", 'bgr565le'"bgr565le""bgr565le""bgr565le""bgr565le""bgr565le", 'bgrx'"bgrx""bgrx""bgrx""bgrx""bgrx", 'bgrx64'"bgrx64""bgrx64""bgrx64""bgrx64""bgrx64", 'rgb'"rgb""rgb""rgb""rgb""rgb", 'rgb48'"rgb48""rgb48""rgb48""rgb48""rgb48", 'rgb555'"rgb555""rgb555""rgb555""rgb555""rgb555", 'rgb5551'"rgb5551""rgb5551""rgb5551""rgb5551""rgb5551", 'rgb5551be'"rgb5551be""rgb5551be""rgb5551be""rgb5551be""rgb5551be", 'rgb5551le'"rgb5551le""rgb5551le""rgb5551le""rgb5551le""rgb5551le", 'rgb555be'"rgb555be""rgb555be""rgb555be""rgb555be""rgb555be", 'rgb555le'"rgb555le""rgb555le""rgb555le""rgb555le""rgb555le", 'rgb565'"rgb565""rgb565""rgb565""rgb565""rgb565", 'rgb565be'"rgb565be""rgb565be""rgb565be""rgb565be""rgb565be", 'rgb565le'"rgb565le""rgb565le""rgb565le""rgb565le""rgb565le", 'rgbx'"rgbx""rgbx""rgbx""rgbx""rgbx", 'rgbx64'"rgbx64""rgbx64""rgbx64""rgbx64""rgbx64"
OriginalWidthOriginalWidthOriginalWidthOriginalWidthoriginalWidthoriginal_width (输入控制) extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of input image.
默认值:
512
建议值:
128, 256, 512, 1024
值范围:
1
≤
OriginalWidth
OriginalWidth
OriginalWidth
OriginalWidth
originalWidth
original_width
(lin)
最小增量:
1
建议增量:
10
OriginalHeightOriginalHeightOriginalHeightOriginalHeightoriginalHeightoriginal_height (输入控制) extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of input image.
默认值:
512
建议值:
128, 256, 512, 1024
值范围:
1
≤
OriginalHeight
OriginalHeight
OriginalHeight
OriginalHeight
originalHeight
original_height
(lin)
最小增量:
1
建议增量:
10
AlignmentAlignmentAlignmentAlignmentalignmentalignment (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Reserved.
TypeTypeTypeTypetypetype (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Pixel type of output image.
默认值:
'byte'
"byte"
"byte"
"byte"
"byte"
"byte"
值列表:
'byte'"byte""byte""byte""byte""byte", 'uint2'"uint2""uint2""uint2""uint2""uint2"
ImageWidthImageWidthImageWidthImageWidthimageWidthimage_width (输入控制) rectangle.extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of output image.
默认值:
0
建议值:
128, 256, 512, 1024
值范围:
0
≤
ImageWidth
ImageWidth
ImageWidth
ImageWidth
imageWidth
image_width
(lin)
最小增量:
1
建议增量:
10
ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height (输入控制) rectangle.extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of output image.
默认值:
0
建议值:
128, 256, 512, 1024
值范围:
0
≤
ImageHeight
ImageHeight
ImageHeight
ImageHeight
imageHeight
image_height
(lin)
最小增量:
1
建议增量:
10
StartRowStartRowStartRowStartRowstartRowstart_row (输入控制) rectangle.origin.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Line number of upper left corner of desired
image part.
默认值:
0
建议值:
-1, 0
StartColumnStartColumnStartColumnStartColumnstartColumnstart_column (输入控制) rectangle.origin.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Column number of upper left corner of desired
image part.
默认值:
0
建议值:
-1, 0
BitsPerChannelBitsPerChannelBitsPerChannelBitsPerChannelbitsPerChannelbits_per_channel (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of used bits per pixel and channel of the
output image (-1: All bits are used).
默认值:
-1
建议值:
5, 8, 10, 12, 16, -1
BitShiftBitShiftBitShiftBitShiftbitShiftbit_shift (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of bits that the color values of the input
pixels are shifted to the right (only uint2 images).
默认值:
0
建议值:
0, 2, 4, 6
结果
如果参数值正确,算子
gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved 返回值 2 ( H_MSG_TRUE )。否则将抛出异常。
可能的后继
disp_colordisp_colorDispColorDispColorDispColordisp_color
另见
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain,
paint_graypaint_grayPaintGrayPaintGrayPaintGraypaint_gray,
paint_regionpaint_regionPaintRegionPaintRegionPaintRegionpaint_region,
set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayvalset_grayval,
gen_image_constgen_image_constGenImageConstGenImageConstGenImageConstgen_image_const
模块
基础