halcon_tuple的操作

Halcon中的数组,也就是tuple,与C语言类似。

变量类型:int,double,string等类型。

变量长度:如果长度为1,则可以作为正常变量使用,第一个索引值为0,最大的索引值为变量长度减1。

赋值符号:一个冒号加一个等号 “     :=     ”  。

Halcon中,数组元素不允许复合结构,因此不可将图片、区域、数组等符合结构追加到数组中,tuple只能是1xN维的数值类型。

定义数组:

数组的初始化
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)

 数组求极值:

数组特征:
tuple_max(Array,Max)          求数组元素的最大值  
tuple_min(Array,Min)          求数组元素的最小值
tuple_mean(Array,Mean)        求数组元素的平均值
tuple_median(Array,Mean)      求数组元素的中值
tuple_length(Array,Length)    获取数组的长度
tuple_abs(Array,Abs)          数组元素的绝对值
tuple_Fun(Array,Fun_array )     对数组元素求Function,这里的Fun是一个宏替换,可以是pow,sin,                
                                cos,tan,log等初等函数。也可neg取反,rad转成弧度
tuple_deviation (a, Deviation)  返回元组元素的标准差
tuple_length (a, Length)      返回元组元素数目

数组选择:
tuple_find(Array, b, Indices)    返回参数2在参数1中出现的索引,如果没有返回-1
tuple_first_n(Array, n, Selected)  选择前面的元素,直到索引n,就会返回n+1个元素
tuple_last_n(Array, n, Selected1)  选择从索引n开始到元组末尾的所有元素,包含索引n的元素
tuple_remove(Array,c,Reduced)      移出指定索引的元素,索引可以是一个数组
tuple_select(Array,Index,Selected)   返回指定索引的元素
tuple_select_range(Array,Index1,Index2,Selected)  返回指定的起始索引,终止索引区域内的元素
tuple_select_rank(Array,Index,Selected)    先升序排序,再返回排序后指定索引的元素


对两个数组进行操作,输出一个数组
tuple_add(Array1,Array2,Sum)    两个数组相加 
tuple_sub(Array1,Array2,Sub)    两个数组相减
tuple_and(Array1,Array2,And)    将两个数组元素逻辑与
tuple_or(Array1,Array2,Or)      将两个数组元素逻辑或
tuple_mult(Array1,Array2, result)   两个数组元素乘积
tuple_neg(Array1,Array2)        对所有元素乘以-1


切片和序列操作:
tuple_select_range(Array,Index1,Index2,ArraySelect)   取一个数组的部分连续值,组成新数组
tuple_concat(Array1,Array2,Concat)                    将两个数组相连接 

排序操作:
tuple_sort(Array,Sorted)          给数组元素升序排序
tuple_sort_index(Array,Indexs)    数组排序,返回升序的索引
tuple_inverse(Array,Inverted)     反转一个数组
tuple_find(Array1,Array2,Indices) 在数组1中寻找数组2

数组的比较:
tuple_equal(Array1,Array2,Equal)  比较两个数组是否相等,返回一个数值
tuple_not_equal(Array1,Array2,Equal)  比较两个数组是否相等,返回一个数值
tuple_greater(Array1,Array2,Greater)
tuple_max2(Array1,Array2,Max2)    比较两个数组的对应元素,取每个大值放于结果中
tuple_min2(Array1,Array2,Min2)    比较两个数组的对应元素,取每个小值放于结果中   

数组转换:
tuple_chr(Array1,Array2)          根据ASCII码将整型元组转换为字符数组
tuple_chrt(Array1,Array2)         根据ASCII码将整型元组转换为字符串
tuple(b,Int)                      一个元组转换为一个整型元组,小数部分直接抛弃,不四舍五入
tuple_real(a, Real)               转换为浮点数
tuple_round (b, Round)            转换为整型数,四舍五入
tuple_ord (e, Ord)                将长度为1的字符串的元组转换为它们相应的ASCII码元组
tuple_ords (f, Ords)              将一个字符串的元组转换为它们ASCII码的元组
tuple_string (str1, '-10.3s', str2)
* 转换为字符串
* 参数1:输入
* 参数2:格式
*     数值时:
*       '10.2f'   总长度10位,小数点2位   f表示浮点数
*       '-10.2f'   -表示左对齐  否则右对齐
*       '.7f'     总长度不限,小数点7位
*       '+10.3f'   +表示前面加上+-号
*       'x'        转化为小写16进制
*       'X'        转化为大写16进制
*       '.8d'       转化为十进制,总长度8位 
*     字符串时:
*        '10s'     转换为总长度10位的字符串
*        '-10s'    -表示左对齐  否则右对齐
*        '-10.3s'   总长度10位,截取前3个字符

tuple的基本操作: 

 *1.数组定义和赋值
*定义空数组
Tuple:=[]
 
*指定数据定义数组
Tuple1:=[1,2,3,4,5,6,7,8]
Tuple2:=['A','B','C','D']
 
*通过数组下标更改指定位置的元素值。
Tuple1[2]:=9
 
*求数组个数
Number:=|Tuple1|
 
*合并数组
Union:=[Tuple1,Tuple2]
 
*提取数组中指定下标的元素
T:=Tuple1[2]

*2.数组字符串运算
*字符串拼接
A1:='你'+'好'
 
*取字符串长度
Length:=strlen(A1)
 
*3.三角函数运算和数值函数运算
*弧度转角度
Degree:=deg(1.36)
 
*角度转弧度
Radian:=rad(90)
 
*求最小值
val_min:=min(Tuple1)
 
*求最大值
val_max:=max(Tuple1)

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值