名称
gen_image_interleaved - 从一个指向交织像素的指针创建一个三通道图像。
用法
gen_image_interleaved( : ImageRGB : PixelPointer, ColorFormat, OriginalWidth, OriginalHeight, Alignment, Type, ImageWidth, ImageHeight, StartRow, StartColumn, BitsPerChannel, BitShift : )
描述
算子gen_image_interleaved从输入图像创建一个三通道图像,其像素按照行顺序存储在PixelPointer中。 输入图像的大小必须以OriginalWidth和OriginalHeight传递。交织像素的格式在ColorFormat中指定。
输出图像的大小是ImageWidth * ImageHeight。 与左上角的StartRow和StartColumn的坐标一起,可以提取输入图像的任何部分。 当ImageWidth,ImageHeight,StartRow和StartColumn都为0时,输出图像与输入图像有相同的尺寸。
请注意,必须选择输出图像ImageRGB的图像类型Type(请参见gen_image_const),以便可以表示输入图像的可能颜色值的整个范围。即 gen_image_interleaved不允许使用输入图像格式ColorFormat为‘rgb48‘来创建一个字节图像。
当格式“rgb48”,“bgr48”,“rgbx64”和“bgr64”不使用每个通道和像素的全部16位时,应该在BitsPerChannel中传递实际使用的位数。 此外,输入图像的像素值可以通过向右移位BitShift位。
格式为“rgbx”,“bgrx”,“rgbx64”和“bgrx64”的四通道输入图像的第四个通道被简单地丢弃。
新图像的存储是由HALCON新创建的。 因此,指针可以在调用结束后释放。 请注意,如何传递一个指针值取决于所使用的算子和编程环境。 确保传递存储图像数据的实际内存地址,而不是指针变量的地址。 必须注意不要在64位体系结构上截断64位指针。
ColorFormat的可能值:
‘rgb555‘:
三通道16位rgb(每个像素和通道5位),填充位(X)是第一位。位模式是XRRRRRGG | GGGBBBBB。
‘bgr555‘:
三通道16位bgr(每个像素和通道5位),填充位(X)是第一位。位模式是XBBBBBGG | GGGRRRRR。
‘rgb5551‘:
三通道16位rgb(每像素和通道5位),填充位(X)是最后一位。位模式是RRRRRGGG | GGBBBBBX。
‘bgr5551‘:
三通道16位bgr(每个像素和通道5位),填充位(X)是最后一位。位模式是BBBBBGGG | GGRRRRRX。
‘rgb565‘:
三通道16位rgb(每个像素和通道5位,绿色通道6位)。位模式是RRRRRGGG | GGGBBBBB。
‘bgr565‘:
三通道16位bgr(每个像素和通道5位,绿色通道6位)。位模式是BBBBBGGG | GGGRRRRR。
‘rgb‘:
三通道24位rgb(每个像素和通道8位)
‘bgr‘:
三通道24位bgr(每个像素和通道8位)
‘rgbx‘:
四通道32位rgb(每个像素和通道8位)
‘bgrx‘:
四通道32位bgr(每个像素和通道8位)
‘rgb48‘:
三通道48位rgb(每个像素和通道16位)
‘bgr48‘:
三通道48位bgr(每个像素和通道16位)
‘rgbx64‘:
四通道64位rgb(每像素和通道16位)
‘bgrx64‘:
四通道64位bgr(每像素和通道16位)
值‘rgb555‘,‘bgr555‘,‘rgb565‘,‘bgr565‘,‘rgb5551‘和‘bgr5551‘可以和后缀‘le‘一起使用(Little Endian(小端):低位字节在前)或者 - 默认情况下后缀被省略 -(Big Endian(大端):高位字节在前)。 例如,ColorFormat =‘rgb555‘的位模式是XRRRRRGG | GGGBBBBB,而ColorFormat =‘rgb555le‘的位模式是GGGBBBBB | XRRRRRGG。
并行
● 多线程类型:可重入(与非独占算子并行运行)。
● 多线程范围:全局(可以从任何线程调用)。
● 不并行化处理。
参数
ImageRGB (output_object) image → object (byte / uint2)
新创建的图像矩阵
PixelPointer (input_control) pointer → (integer)
指向交错像素的指针。
ColorFormat (input_control) string → (string)
输入像素的格式。
Default value: ‘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)
图像宽度。
Default value: 512
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 ≤ OriginalWidth (lin)
Minimum increment: 1
Recommended increment: 10
OriginalHeight (input_control) extent.y → (integer)
图像高度。
Default value: 512
Suggested values: 128, 256, 512, 1024
Typical range of values: 1 ≤ OriginalHeight (lin)
Minimum increment: 1
Recommended increment: 10
Alignment (input_control) integer → (integer)
保留。
Type (input_control) string → (string)
输出图像的像素类型。
Default value: ‘byte‘
List of values: ‘byte‘, ‘uint2‘
ImageWidth (input_control) rectangle.extent.x → (integer)
输出图像宽度。
Default value: 0
Suggested values: 128, 256, 512, 1024
Typical range of values: 0 ≤ ImageWidth (lin)
Minimum increment: 1
Recommended increment: 10
ImageHeight (input_control) rectangle.extent.y → (integer)
输出图像高度。
Default value: 0
Suggested values: 128, 256, 512, 1024
Typical range of values: 0 ≤ ImageHeight (lin)
Minimum increment: 1
Recommended increment: 10
StartRow (input_control) rectangle.origin.y → (integer)
所需图像部分左上角的行号。
Default value: 0
Suggested values: -1, 0
StartColumn (input_control) rectangle.origin.x → (integer)
所需图像部分左上角的列号。
Default value: 0
Suggested values: -1, 0
BitsPerChannel (input_control) integer → (integer)
输出图像的每个像素和通道使用的位数(-1:使用所有位)。
Default value: -1
Suggested values: 5, 8, 10, 12, 16, -1
BitShift (input_control) integer → (integer)
输入像素的颜色值向右移动的位数(仅uint2图像)。
Default value: 0
Suggested values: 0, 2, 4, 6
结果
如果参数值正确,则算子gen_image_interleaved返回值2(H_MSG_TRUE)。 否则会引发异常。
Possible Successors
disp_color
See also
reduce_domain, paint_gray, paint_region, set_grayval, gen_image_const
模块
Foundation
HDevelop例程
gen_image_interleaved.hdev 演示从交错像素的输入矩阵创建三通道HALCON图像的各种方法