名称
get_image_pointer1 - 访问一个通道的指针。
用法
get_image_pointer1(Image : : : Pointer, Type, Width, Height)
描述
算子get_image_pointer1返回指向图像Image的第一个通道的指针。 此外,返回图像类型(Type ='byte','int2','uint2'等)和图像大小(宽度和高度)。 因此,使用HALCON的编程语言可以通过指针直接访问HALCON数据库中的图像数据。 一个图像被存储在HALCON中,按行的主要顺序,即逐行线性化。 请注意,图像类型'complex'和'vector_type'是以特定方式处理的。 具体而言,'complex'图像是交错的,即实部和虚部是交替的。 相比之下,'vector_field'图像由两个矩阵组成,一个用于行,另一个用于列,它们依次存储在HALCON数据库中。
注意
只有在HALCON数据库中存在相应的图像对象时,才能使用get_image_pointer1返回的指针。这种情况下只要相应的变量在编程语言中使用了HALCON是有效的。 如果没有遵守,可能会导致意外的行为或程序崩溃。
如果通过指针将数据写入现有图像,所有引用该图像的图像对象都被修改。 例如,如果图像的ROI通过reduce_domain被限制,则具有完整域的原始图像对象和具有简化域的图像对象共享相同的图像矩阵(即get_image_pointer1针对两个图像返回相同的指针)。 因此,如果修改这个例子中的两个图像中的一个,则两个图像对象都会受到影响。 因此,如果指针用于以使用HALCON的编程语言写入图像数据,则应该将图像数据写入已经为此目的而创建的图像对象,例如使用gen_image1。 对于多通道输入图像,返回第一个通道的类型和指针。
并行
● 多线程类型:可重入(与非独占算子并行运行)。
● 多线程范围:全局(可以从任何线程调用)。
● 不并行处理。
参数
Image (input_object) 单通道图像(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
输入图像。
Pointer (output_control) pointer(-array) → (integer)
HALCON数据库中的图像数据的指针。
Type (output_control) string(-array) → (string)
图像类型。
List of values: 'byte', 'complex', 'cyclic', 'direction', 'int1', 'int2', 'int4', 'int8', 'real', 'uint2', 'vector_field_absolute', 'vector_field_relative'
Width (output_control) extent.x(-array) → (integer)
图像宽度。
Height (output_control) extent.y(-array) → (integer)
图像高度。
Example (C)
Hobject Image; char typ[128]; Hlong width,height; unsigned char *ptr; read_image(&Image,"fabrik"); get_image_pointer1(Image,(Hlong*)&ptr,typ,&width,&height);
结果
如果只有一个图像被传递,那么算子get_image_pointer1返回值2(H_MSG_TRUE)。 空输入(无可用输入图像)时的行为通过算子set_system('no_object_result',<Result>)设置。 如有必要,会引发异常。
Possible Predecessors
read_image
Alternatives
set_grayval, get_grayval, get_image_pointer3, get_image_size, get_image_type
See also
paint_region, paint_gray
模块
Foundation