HALCON学习之旅(二)


文章目录

  • HALCON学习之旅(二)
  •     1、HALCON用户界面操作符
  •     2、HACLON基础语法
  •     ①、运算符
  •     ②、Tuple数组
  •     ③、字符数字格式化


        Halcon用户界面操作符提供了与使用鼠标交互相同的功能。它们用于从程序中配置环境。使用这些操作符,程序执行类似于在参数窗口中设定颜色,在菜单中打开窗口或在窗口管理器的帮助下图标化程序窗口操作(只做了解即可)。🎵

闲话不多说,直接上代码

halcon怎么读取深度学习预训练模型 halcon教学_数组

halcon怎么读取深度学习预训练模型 halcon教学_数组

halcon怎么读取深度学习预训练模型 halcon教学_数组

*程序运行开始

*内涵三个函数
*dev_update_pc('off')     作用:在程序执行期间,控制程序计数器关闭
*dev_update_var('off')    作用:在程序执行期间,控制变量窗口的关闭
*dev_update_window('off') 作用:在程序执行期间,控制图形窗口不更新 单步模式下该规则无效
*在测量一些算子的运行时间的时候,应该设置为'off',以减少HDevelop中GUI更新运行时间的影响
dev_update_off ()  //一般放在程序开始

*读入图片
*参数1 图像变量
*参数2 图像路径(这里使用的是Halcon软件自带的图像)
read_image (Clip, 'clip')

*获取图像大小
*参数1 图像变量
*参数2 图像的宽
*参数3 图像的高
get_image_size (Clip, Width, Height)

*初始化图形窗口
*参数1 图形窗口左上角x
*参数2 图形窗口左上角y
*参数3 图形窗口宽
*参数4 图形窗口高
*参数5 图形宽口显示背景颜色
*参数6 图形窗口名称
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)

*设置活动图形窗口ID
dev_get_window (WindowHandleID)

*指定活动图形窗口ID
dev_set_window (WindowHandleID)

*展示图像变量
dev_display (Clip)

*关闭图形窗口
dev_close_window()

*内涵三个函数
*dev_update_pc('on')     作用:在程序执行期间,控制程序计数器打开
*dev_update_var('on')    作用:在程序执行期间,控制变量窗口的打开
*dev_update_window('on') 作用:在程序执行期间,控制图形窗口更新
dev_update_on () //一般放在程序结尾

效果展示:

halcon怎么读取深度学习预训练模型 halcon教学_图像处理_04

    相关算子接口都有说明注释,内容不多,速览👀

*等号 :=
*不等号 !=(新版本) #(旧版本) 
*注释符 *
*字符串赋值 str := 'Halcon'
*等于比较运算符 if(X == 10)  X == 10(新版本)X = 10(旧版本) 二者都可行 个人建议使用新版本
*与逻辑运算符 if(A>1 and A<30)
*或逻辑运算符 if(A>1 or b<30)
*取反 if(not(A==10))
*for循环 for i := 0 to 10 by 1
*        循环遍历[0~10],迭代步长为1
*        endfor
*while循环 while(X==1) 
*          endwhile
*switch分支 switch(Index)
*           case1:
*               break
*           case2:
*               break
*           default:
*               break
*            endswitch
*异常获取 try
*         catch(Exception)
*         endtry
*Tuple数组
*将一个Tuple数组赋值给变量
Tuple1 := [0,1,2,3,4,5,6,7,8,9]

*给Tuple数组指定元素赋值
Tuple1[1] := 2

*批量改变数组元素的值
Tuple1[2,3,4] := 'abc'

*批量给Tuple数组赋值,其值为0到10000连续数值
tuple2 := [0:10000]

*批量给Tuple数组赋值,其值为3到200连续数值,步长为1
tuple3 := [3:1:200]

*批量给Tuple数组赋值,其值为100到-100连续数值,步长为-10
tuple4 := [100:-10:-100]

*对两个Tuple数组进行合并操作(合并时对于相同元素的值只保存其中一个)
tupleInt1 := [1,2,3,4,5]
tupleInt2 := [4,5,6,7,8]
tuple_union (tupleInt1, tupleInt2, UnionInt)

*对两个Tuple数组进行交集操作
tuple_intersection (tupleInt1, tupleInt2, IntersectionInt)

*对Tuple数组元素进行替换
OriginalTuple := [0,1,2,3,4,5]
tuple_replace (OriginalTuple, [0,1], [2,3], Replaced)

*向Tuple数组插入数值
OriginalTuple := [0,1,2,3,4,5]
tuple_insert(OriginalTuple,3,'x',InsertSingleValue)

效果展示:

halcon怎么读取深度学习预训练模型 halcon教学_数组_05

i1 := 123$'#o' //8进制,0为前缀(先将10进制转换为2进制,然后将二进制转换为8进制·)
i2 := 123$'#x' //16进制,0x为前缀,7b为赋值
i3 := 123$'#X' //16进制,0x为前缀,7B为赋值,7b和7B是一样的

    若是对于进制数据转化不了解的可以参考这篇博客(保证一学就会哦🍄🍄🍄):
    

i4 := 123$'#f' //double型,默认保留小数点后六位
i5 := 123$'#g' //使数字始终保持六位,不足布零
i6 := 123$'#G' //使数字始终保持六位,不足布零(个人认为应改成使数字显示始终保持六位,多的使用科学计数法计数)
i7 := 123$'#e' //转换成科学计数法
i8 := 123$'#E' //转换成科学计数法

**************浮点数***************
i9 := 123$'.f' //小数点后保留零位小数
i10 := 123$'.1f' //小数点后保留1位小数
i11 := 123$'.2f' //小数点后保留2位小数
i12 := 123$'.3f' //小数点后保留3位小数
i13 := 123$'.4f' //小数点后保留4位小数

**************整数**************
i14 := 123$'6' //小于六位时,文本右对齐,大于不影响
i15 := 123$'-6' //小于六位时,文本左对齐,大于不影响
i16 := 123$'.6' //小于六位时,在左边布零,大于不影响
i18 := 12345$'10.6' //小于10位时,文本右对齐;小于6位时,则在左边布零,大于不影响

**************文本**************
i19 := '123'$'10' //小于10位时,文本右对齐,大于不影响
i20 := '123'$'-10' //小于10位时,文本左对齐,大于不影响

效果展示:

halcon怎么读取深度学习预训练模型 halcon教学_opencv_06