
Halcon 基础应用(1)
Halcon中的数组
创建数组
** 元组/数组
** 创建一个数组
A := []
A[0] := 1
A[1] := 2
创建字典
** 创建一个字典
dic:=dict{Name:'收拾'}
** 元组
B := [1,[1,2,3]]
R := B * 2
相加
数组相加前提是:两个数组要一致
C:=[1,2,3]
B:=[11,22,33]
D:=B+C
** 求数组的长度
len := |D|
** 求元素的个数
tuple_length (D,len1)
** 通过下标获取元素值,下标是从0开始
value := D[2]
批量赋值
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(tuple1,tuple2, Concat)
**返回一个随机数tuple数组,数值分布在[0,1)之间
tuple_rand(5,tmp)
**生成一个指定长度和初始化值的数组
tuple_gen_const(5, 100, Result )
**初始化数组,指定开始值,终止值,步长,得到sequence
tuple_gen_sequence (1, 20, 2, Sequence)
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'
Halcon文件操作
dev_get_window (WindowHandle)
* 遍历文件夹
list_files ('C:/Users/Gerry/Desktop/halcon deeplearn/Train_images', ['files', 'recursive'], Files)
list_image_files ('C:/Users/Gerry/Desktop/halcon deeplearn/Train_images/梨', 'default', [], ImageFiles)
* 筛选bmp及jmp格式的图片
tuple_regexp_select(ImageFiles, ['\\.(bmp|jpg)$','ignore_case'], Files)
* 打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
* 依次读取所选图片并显示 在窗口中
for Index := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[Index])
dev_display(Image)
* 分割文件名
parse_filename(ImageFiles[Index], BaseName, Extension, Directory)
* 保存图片,给出路径及名称,新文件名为在原文件名后添加_adj
dump_window(WindowHandle,'bmp',Directory + BaseName + '_adj')
stop ()
endfor
继续F5可以跳入下一张图片
图像读取
read_image (Image, 'printer_chip/printer_chip_02')
read_image (Image1, ['printer_chip/printer_chip_01', 'printer_chip/printer_chip_05'])
** 选择对象中目录
select_obj (Image1, ObjectSelected, 1)
** 统计对象中目录数量
count_obj (Image1, Number)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
644
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术