Halcon中的基础类型与正则表达式

Halcon算子规律

dev_: 系统、窗口相关算子

read_: 与读相关算子基本都是read开始

write_: 与写相关的算子

draw_:在窗口上画图,画区域使用该前缀的算子

gen_: 表示生成类的算子

get_: 表示获取类的算子

set_: 设置参数类的算子

region_: 表示与区域相关操作的算子

tuple_: 与数组操作类相关的算子

select_: 筛选类型的算子

hom_: 与仿射变换矩阵相关的算子

reduce_: 在原图中只显示筛选的区域部分

crop_: 原图中只显示筛选的区域部分真的扣出来

Halcon中的数组

** 元组/数组 tuple
** 创建一个数组
A := [1,3,45,6]
A[0] := 1
A[1] := 2

*******数组定义*******
A:=[]
*空数组--[]

A1:=[1]           
*1

A2:=[2,1]         
*[2,1]

A3:=[A1,[1,2,3]]   
*[1,1,2,3]

B:= A3 + 1        
*[2,2,3,4]    每一个数加 1

B1:=A3*2
*[2, 2, 4, 6]    每一个数*2
-----------------------------------------------------------------------
C:=[1,2,3,4,5]
B:=[10,20,30,40,50]
D:=B+C
*数组相加(前提是两个数组元素个数要一样)
*每个对应的元素进行相加
*D的值是[11, 22, 33, 44, 55]


len := |D|
*求数组的长度即数组的元素个数
*len:=5


tuple_length (D,len1)
*求数组的长度即数组的元素个数
*len1:=5


value := D[2]
*通过下标获取元素值,下标是从0开始的
*value :=33
-----------------------------------------------------
A:=[10,20,30,40,50]
A[6]:=100
*赋值   [100, 20, 30, 40, 50, 0, 100]


A[0,2,3]:=99
*批量赋值  [99, 20, 99, 99, 50, 0, 100]
*下标是要赋值的位置序号

B:=[10:15]
*[10, 11, 12, 13, 14, 15]
*B的值为10到15的连续值


B1:=[10:2:20]
*[10, 12, 14, 16, 18, 20]
*B1的值为10到20的连续值,步长为2,步长可以为负数
-------------------------------------------------------------
A:=[10,30,20,40,50]
B:=[1,30,20,4,5]

tuple_union(A,B,C)
*C的值为 [1, 4, 5, 10, 20, 30, 40, 50]
*两个数组进行合并操作,并自动排序【对两个数组进行并集操作】
*注意:合并时重复的元素只出现一次

tuple_intersection(A,B,D)
*D的值为  [20, 30]
*对两个数组进行交集操作,并自动排序

tuple_replace (A, [0,2], ['100','200'], E)
*E的值为  ['100', 30, '200', 40, 50]
*替换操作
*参数2:要替换的位置序号
*参数3:要替换的值
*参数4:替换后保存的数组变量

tuple_insert (A, 3, '500', F)
*F的值为 [10, 30, 20, '500', 40, 50]
*插入元素
*参数2:插入的位置序号
*参数3:插入的值
*参数4:插入后保存的数组变量
--------------------------------------------------------------
数组的初始化
A:=[1,2,3,4] 
 
定义空数组,逐渐追加元素
A :=[ ]
for i :=0 to 4 by 1
      A:= [A,i]
endfor
 
连接两个tuple数组到第三个tuple中
tuple1[0] := 1
tuple2[0] := 3
tuple_concat(Tump0,Tump1, Concat)
 
返回一个随机数tuple数组,数值分布在[0,1)之间
tuple_rand(5,tmp)
 
生成一个指定长度和初始化值的数组
tuple_gen_const(5, 100, Result )
 
初始化数组,指定开始值,终止值,步长,得到sequence
tuple_gen_sequence (1, 20, 2, Sequence)

数组操作算子

Halcon的格式化

i1:=123$'#o'
*$'#o'   十进制转换成8进制数据
*'0173'   0为前缀

i2:=123$'#x'
*$'#x'   十进制转换成16进制数据
*'0x7b'   0x为前缀  字母小写


i3:=123$'#X'
*$'#X'   十进制转换成16进制数据
*'0X7B'    0X为前缀  字母大写

i4:=123$'#f'
* double型,默认保留小数点后六位
* '123.000000'

i5:=123$'#g'
*'123.000'     使数字始终保持六位,不足补零
i6:=12345678$'#g'
* '1.23457e+007'

i7:=123$'#G'
*'123.000'     使数字始终保持六位,不足补零
i8:=12345678$'#G'
* '1.23457E+007'

i9:=5432178$'#e'
*$'#e'    转换成科学计数    '5.432178e+006'
i10:=5432178$'#E'
*$'#E'    转换成科学计数    '5.432178E+006'

i11:=2.7$'6'
*$'6'    小于六位时,文本右对齐,大于不影响
* '   2.7'


i12:=2.7$'-6'
*$'-6'    小于六位时,文本左对齐,大于不影响
* '2.7   '

i13:=2$'.6'
*小于六位时,在左补零,大于不影响
* '000002'
*注意:针对整数,小数无效
i14:=2.8$'.6'
*'2.8'   小数无效

i15:=267$'10.6'
*小于十位时,文本右对齐;小于6位则在左补零,大于不影响
*'    000267'
i16:=26.7$'10.6'
*注意:补零功能针对整数,小数无效
*'      26.7'

 

posted @ 2024-06-30 23:59  ZHIZRL  阅读(8)  评论(0编辑  收藏  举报