云计算百科
云计算领域专业知识百科平台

Halcon初步

Halcon就是一门编程语言
软件使用

界面介绍

快捷菜单

视图窗口

变量窗口:(类型)图像变量窗口和控制变量窗口。

算子窗口:halcon用到的函数、方法统称为算子。  视觉软件中调什么函数一般就是算子。

程序窗口:类似编程用的窗口。

内部案例如何调:Ctrl+E   (浏览的开发实例程序,在实例程序里有非常多分类和方法。

可以调用里面算子。

F5–运行

正常运行时会把所有运行结果叠加到一起。

灰度值如何看

灰度值  (鼠标在图形窗口移动时,灰度值和行及列都会发生变化)

坐标系   R–行     C–列

按ctrl(上面坐标系表示,下面灰度值,上面坐标系)

不小心关没了   选择停靠图像窗口

图像变量窗口恢复

ROI窗口打开(用来绘制ROI目标区域)

想让图像恢复正常点适应窗口。

放大用鼠标滚轮或放大镜    箭头模式下只能放大不能移动      想移动按手可以拖动图像。

Halcon案例位置通过环境变量找

安装目录:

电脑搜环境变量–编辑环境变量(这里不需删除不需动)

双击它复制地址

想变成高手多看源码,通过环境变量找

可以看案例存储目录(Halcon联合XX编辑)

都在H-Develop目录下可以看到以前编辑的

编程讲解

H-Develop(Halcon开发工具库/Halcon编程语言)

code目录–专门用来放代码

主程序里去编写代码

halcon里面注释  “  *  ”

不知道的话全选点注销

调用算子后点F6

下面是调用算子,左边图像变量是变量。

变量:

i定义的值叫变量(可以根据用户的需求来)–严格按照强类型方式来定义

图像变量:   

三种方式:图像、轮廓、区域(统称图像变量)

默认图像为3,会找到这张图     必须写名称-规范写法

参数:使用算子需要提供的数据及返回的结果。   halcon底层:C语言

如何看输入输出

选中算子对应右键–打开算子所在窗口,算子所对应窗口打开。          如果还没找到点算子选择帮助(跳到算子帮助文档里面来会提供很多算子使用案例)

获取图像区域:代表区域某个变量。  (用二值化可以提取区域出来)

通过算子提取灰度值范围区域

轮廓

类型:轮廓类型(叫XLD类型–就是轮廓)

图像变量会把对应变量放窗口中。控制变量放到控制变量窗口中。

轮廓三种提取模式:边框、中心、边框孔洞。定义字符串用单引号,定义控制变量放控制窗口中。

Halcon变量提取:图像、区域、轮廓、字符串、数字

变量搞清楚后才能学习halcon语法。

halcon语法:分支判断、循环、数组(元祖)和字典 运用。

被筛选出来内容就是区域

凡是不等于0都为真(和C语言一样)

halcon中这个颜色被称为定义函数这个颜色为内部自带算子通过这些遍历设置额外参数。

短路判断:一旦上面成立下面就不走了

句柄

三种组合方式:if     end if      else if    name     (可以嵌套很多else if)

光标自动定位:点哪个或修改哪个就定位哪个。

选择结构:switch..case   根据用户选择去执行对应情况(不是根据范围去处理就是根据结果去选择)

Halcon看帮助文档,底层就是C语言。

循环:处理的数据逻辑都一样,如果不用训练就重复写的,用循环就写一次。

写多了就用对了,不需要刻意去记忆单词。

软件安装+内容练习

坐标类型就是整数,string字符串类型

* 介绍Halcon编程中基础内容
* 什么变量,可以变化量,怎么定义变量
i := 1 // 控制变量i赋值为1
i := 11
name := 'gerry'
** 什么是图像变量 图像,轮廓,区域
** 参数: 使用算子需要提供的数据及返回的结果
** int Method1(…..)
read_image (Image, './3.bmp') // image图像变量
** 获取图像图区域
threshold (Image, Region, 128, 255) // Region 图像变量
** 通区域转换为轮廓
gen_contour_region_xld (Region, Contours, 'border') // XLD => Contours 图像变量

*** 学习Halcon的语法:
** 1、 分支判断[非零数为真,0为假]
** 第一种
dev_clear_window ()
if (1)
dev_disp_text ('判断为真', 'window', 20, 20, 'yellow', ['box'], ['false']) // 显示文本到窗口
endif

** 第二种
name:='zhangsan'
dev_clear_window ()
if (name=='zhangsan')
dev_disp_text ('名称张三', 'window', 20, 20, 'yellow', ['box'], ['false'])
else
dev_disp_text ('名称不是张三', 'window', 20, 20, 'yellow', ['box'], ['false'])
endif

** 第三种
j:=2
** 必须获取窗口句柄
dev_clear_window ()
if (j == 1)
dev_disp_text ('J==1', 'window', 20, 20, 'yellow', ['box'], ['false'])
elseif( j > 0)
dev_disp_text ('j > 0', 'window', 20, 20, 'yellow', ['box'], ['false'])
elseif( j > 0)
dev_disp_text ('j > 0', 'window', 20, 20, 'yellow', ['box'], ['false'])
elseif( j > 0)
dev_disp_text ('j > 0', 'window', 20, 20, 'yellow', ['box'], ['false'])
else
dev_disp_text ('j < 0', 'window', 20, 20, 'yellow', ['box'], ['false'])
endif
** 选择结构:switch….case
dev_clear_window ()
selected := 2
switch (selected)
case 1:
case 3:
case 5:
dev_disp_text ('选择了1号', 'window', 20, 20, 'yellow', ['box'], ['false'])
break
case 2:
dev_disp_text ('选择了2号', 'window', 20, 20, 'yellow', ['box'], ['false'])
break
case 6:
dev_disp_text ('选择了3号', 'window', 20, 20, 'yellow', ['box'], ['false'])
break
default:
dev_disp_text ('选择不存在', 'window', 20, 20, 'yellow', ['box'], ['false'])
endswitch

** 2、 循环【处理的数据逻辑都一样,如果不用训练就重复写的,用循环就写一次】
k :=1
dev_clear_window ()
while(k<=9)
dev_disp_text ('i='+k, 'window', 20, 20*k, 'yellow', ['box'], ['false'])
k := k + 1
endwhile

** for(int i = 1; i <= 9; i+=1)
dev_clear_window ()
for i:=1 to 9 by 1
dev_disp_text ('i='+i, 'window', 20, 20*i, 'yellow', ['box'], ['false'])
endfor
** 3、 数组(元祖)、字典
**** 1
Array1 := [1,2,3,4,5]
Array1[10] := 100
**** 2 数组初始化
A[1,4,6] := 100
**** 3 初始化连续数字
B := [5:10]
**** 4 初始化步长为3的连续元素
D :=[2:3:19]

** 初始化字典 [k,v]
create_dict (Dict)
Dict := dict{} // 初始化一个字典
set_dict_tuple (Dict, 'simple_integer', 27)
set_dict_tuple (Dict, 'simple_string', 'Hello world')
set_dict_tuple (Dict, 'mixed_tuple', ['The answer', 42])
set_dict_tuple (Dict, 0, 'This is zero')
** 取值
get_dict_tuple (Dict, 'simple_string', Res)
** 判断key是否存在
get_dict_param (Dict, 'key_exists', [9], GenParamValue)

Halcon一般情况下点XL的,弹出对话框要关闭。

安装破解版:对2025可能会出现问题。

安装不同版本的用切换助手。

网慢安装不要用加速器(库和库之间出现问题)

联合编程:当前使用的哪个版本切过去就行了

不要点击自动检测 环境变量

赞(0)
未经允许不得转载:网硕互联帮助中心 » Halcon初步
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!