Halcon

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)

posted @ 2022-12-23 17:05  InsiApple  阅读(349)  评论(0编辑  收藏  举报