Halcon 元组/数组基本操作
** 元组/数组 tuple
*******数组创建与字典*******
** 创建一个数组
A := [1,3,45,6]
A[0] := 1
A[1] := 2** 定义一个key value字典类型create_dict (DictHandle)
set_dict_tuple (DictHandle,
set_dict_tuple (DictHandle, *******数组定义*******
A:=[]
*空数组--[]A1:=[1]
*1A2:=[2,1]
*[2,1]A3:=[A1,[1,2,3]]
*[1,1,2,3]B:= A3 + 1
*[2,2,3,4] 每一个数加1B1:=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:=5tuple_length (D,len1)
*求数组的长度即数组的元素个数
*len1:=5value := 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], [
*E的值为 [
*替换操作
*参数2:要替换的位置序号
*参数3:要替换的值
*参数4:替换后保存的数组变量* 插入
tuple_insert (A, 3,
*F的值为 [10, 30, 20,
*插入元素
*参数2:插入的位置序号
*参数3:插入的值
*参数4:插入后保存的数组变量*******数组的初始化,随机*******
A:=[1,2,3,4] *定义空数组,逐渐追加元素
A :=[ ]
for i :=0 to 4 by 1A:= [A,i]
endfor
* [0, 1, 2, 3, 4]*连接两个tuple数组到第三个tuple中
tuple1[0] := 1
tuple2[0] := 3
* 链接
tuple_concat(tuple1,tuple2, Concat)
*[1, 3]* 随机生成
tuple_rand(5,tmp)
* [0.259849, 0.537071, 0.999261, 0.649518, 0.60093]* 生成一个指定长度和初始化值的数组
tuple_gen_const(5, 100, Result )
* [100, 100, 100, 100, 100]* 初始化数组,指定开始值,终止值,步长,得到sequence
tuple_gen_sequence (1, 20, 2, Sequence)
* [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]