Halcon 定义了自己独有的数据结构,本文记录相关内容。
类型 | 描述 |
---|---|
byte | 即8 位的图像数据类型,存储的像素们的范围为0~255 |
direction | 它是一个存储方向的数据类型,用来存储角度方向,上限是 180°,一般情况下方向是0~360°。如果用这种数据类型来保存数据,保存的角度信息是实际角度的一半 |
cyclic | 以循环的方式来存储数据,即如果灰度值超过了 255,数据又会从零开始不断地循环 |
int1 | 带符号的数据类型,范围为 -127~128 |
complex | 数据类型:混合型的数据类型,包含实部和虚部两部分,是在复数存储时使用到的一个数据类型 |
int2 | 16 字节深度的数据类型,是带符号的数据类型,存储数据的范围为 -32767~32768 |
uint2 | 16 字节深度的数据类型,是不带符号的数据类型存储数据的范围为 0~65 535 |
int4 | 32 字节深度的数据类型,是带符号的数据类型,存储数据的范围是-2147483647~2147483648 |
int8 | 64 字节深度的数据类型,是带符号的数据类型,存储数据的范围是 -9223372036854775807-9223372036854775808 |
real | 一个浮点型的实数数据类型,用于存储实数数据 |
图像和区域最小的组成单位是像素,对于测量工具,例如钢尺,最小的测量单位是毫米但是可以通过估读的方式读到亚毫米级。
12345678910111213 | typedef struct con_type{ HITEMCNT num; //XLD 轮廓点的数量 HSUBCOOK * row; //XID轮廓点的行坐标 HSUBCOOK * column; //XLD 轮廓点的列坐标 Hcont_class location; //XID 轮廓是否交叉和交叉的位置 INT4 num_attrib; //附加属性的个数 Hcont attrib * attribs; //XLD 轮脉附加属性 INT4 num_global; //XLD 轮廓附加全局属性个数 Hcont_global_attrib *attrib; //XLD轮附加全局属性 INT4 h; //辅助属性)Hcont; |
---|
定义一个空数组,代码如下:
1 | Tuple:=[] |
---|
给数组赋值并创建数组,代码如下
1 | Tuple:=[l, 'a", 2.1] |
---|
给指定数组元素赋值,代码如下
1 | Tuple[1]=0 |
---|
获取数组的长度,代码如下:
1 | Number: = |Tuplel| |
---|
用函数方式获取数组长度,代码如下:
1 | tuple_length(Tuple, Length2) |
---|
数组合并:
1 | tuple1 := [tuple1, tuple2, '3'] |
---|
HALCON 中的数组结果是可以直接存储的。
write_tuple
这个函数来存储 Tuple 数值,该函数的第一个变量是需要存储数组,第二个变量是存储的地址,存储下来的文件后缀名为.tup
,可以用写字板的方式打开该文件。create_dice
函数来创建字典,该函数的参数只有一个,即这个字典的句柄。set_dict_object
和 set_dict_tuple
函数来向字典里面存入数据,存入数报的时候需要值、键和字典句柄。这两个函数共有 3 个变量:第一个变量是存入的值,第一个变量是句柄,第三个变量是键值。get_dict_object
和 get_dict_tuple
函数来查询字典里面的数据,这两个函数的第一个变量是字典的句柄,第二个变量是键值,第三个变量是访问的值。可以通过 remove_dict_key
函数来删除字典中的数据,这个函数的第一个变量是字典的句柄,第二个变量是数据的键。copy_dict
来复制字典,所有字典数据都是深度复制的。这个函数的第一个变量是要复制的句柄;第二个变量是复制时出现错误的种类。目前只有一种错误,即复制空句柄错误,这里用 []
来表示默认就可以了,也可单击下拉框来选择;第三个变量是这个错误类型处理方式,第一种方式是 'true‘
,是复制空句柄时,中断操作,第二种是'low_level'
,复制继续,错误类型交给 system_set
来决定触发什么错误,第三种是'false'
,就是不触发错误,继续复制空句柄。