Halcon学习笔记
窗口含义
左上:图形窗口,当有图片,或者工业相机的动态成像都可以在这里显示
左下:图像属性窗口,halcon处理时产生多个图像的信息展示
右上:算子窗口,编写程序时,需要使用函数,在这里赋值参数,也能查询
右下::程序窗口,一些逻辑代码加许多个算子组成的语句块
Halcon识别图像的基本步骤
图像预处理(获取):图像去噪、图像基本变化、图像增强、图像位置变化
区域分割:将感兴趣的区域从原图像中分割出来。包括基于阈值的分割、聚类的分割等等
区域筛选:从分割出来的所有区域中,根据区域的某些特征,筛选出我们需要的区域。这些特征包括长度、长宽比例、凸性、圆度等等
特征提取:根据筛选的区域,对区域进行定量分析,包括区域的大小、外接圆、以及其他特征分析等,来判断区域是否满足条件要求。如果是测量类,需要对区域之间的关系进行分析等
总路线:定位特征,层层递进
Halcon架构
- 算子:图像输入, 图像输出, 控制输入, 控制输出
- 参数和数据结构
- 接口:halcon支持python, c, c++和 .NET语言接口,不同编程语言接口,其数据类型, 类和算子的命名不同
开发应用
使用 HDevelop进行快速原型设计。在开发好 HDevelop 程序后需要将其转换为最终环境,方法有以下三种:
Start from Scratch: 从头(scratch)开始编写程序意味着手动将 HDevelop 代码翻译成目标编程语言(C++、Python…)。
导出 HDevelop 代码: 使用 HDevelop 的代码导出功能将您的 HDevelop 代码自动翻译成目标编程语言。
导出库项目:HDevelop 的库导出会生成一个即用型项目文件夹,包括目标语言的包装代码和用于构建项目的
快捷开发
颜色
褐色:控制和开发算子
蓝色:图像获取或处理算子
浅蓝色:外部函数
绿色:注释
快捷键
- F1:帮助窗口
- F2:重置程序执行
- F5:程序运行
- F6:单步跳过函数
- F7:单步跳入函数
- F8:单步跳出函数
Halcon函数学习1
* 执行图像的相干增强扩散
coherence_enhancing_diff
* 根据参数type转化图片
shape_trans (Region, Blister, 'convex')
* 读取图片
read_image(name, dir)
* 开窗口
dev_open_window(0, 0, Width, Height,'black', WindowHandle)
* 关窗口
dev_close_window()
* 显示图片
dev_display(name)
* 分开区域/打散
connection(region, Connectionregions)
* 选择区域
select_shape(Connectionregions, SelectedR, 'area', 'and', 8000, 8500)
* 中心
area_center(SelectedR, Area, Row, Col)
* 十字坐标
gen_cross_cntour_xld(Cross,Row, Column, 60, 0.0)
Halcon函数学习2
* 二值化
threshold
* 选择区域
select_shape(Connectionregions, SelectedR, 'area', 'and', 8000, 8500)
* 填充
fill_up(SelevtedRegion, RegionFillUp)
* 抠图
reduce_domain(Image, RegionFillUp, ImageReduced)
* 亚像素二值化
threshold_sub_pix(Imaged, Border, 128)
标签:窗口,区域,算子,Halcon,HDevelop,图像
From: https://www.cnblogs.com/InsiApple/p/17001122.html