1 HALCON Architecture
【图一】
HALCON的架构如上,其主要的部分,就是图像处理库。
2 HALCON的基本架构
2.1 Operators
HALCON库功能的使用都是通过【operators】操作符来实现的。绝大多数的操作符由多种方法构成,具体可以参考给出的下面这个链接:
【参考】
- HALCON Operator Reference
- Extension Package Programmer’s Manual
- Parallel Programming
- Programmer’s Guide
Table of Contents [HALCON Operator Reference / Version 13.0.4] (mvtec.com)
2.1.1 操作符的主要的特性:
- 没用层级继承的扁平逻辑结构
- 具备逻辑分组,可以作为C++/.Net类的成员函数
- 具备开源架构特性,可以进行自己拓展的定制化开发。(参考:Extension Package Programmer’s Manual )
- 大多数操作符支持自动的并行处理(参考:Parallel Programming,Programmer’s
Guide.) - 操作符具备标准的输入输出参数:(input iconic, output iconic, input
control, and output control)
2.1.1 参数和数据结构:
HALCON具备两个主要的参数类型:iconic data 和 Control data。 具体分类如下:
【图2】
2.1.1.1 iconic数据
包括,image,regions,XLDs。
- image 比较好理解,就是像素图形、图像相关的数据:【图2】
- regions 理解一组意义的像素组合,【franklin案,理解为我们要研究的一个分割、或者连通的区域】
- XLDS 【Franklin案,理解为等值线或者多边形 数据的组合】
2.1.1.2 Control数据
就是为基本数据、参考句柄数据,这些数据的定义用于规范HALCON的图形图像数据的操作。【案,软件上很好理解】
2.2 Extension Packages
理解为 (HALCON provides the Extension Package Interface)HALCON提供拓展包的接口。这样开发者可以针对特殊的硬件或者一个不同的逻辑,通过给出的接口,构建基于C语言的新Operators。
【参考】
Extension Package Programmer’s Manual
2.3 语言接口
HALCON的编程语言接口,其实,如【图一】一样,就是构建了一个语言的接口层。
【参考】
- HALCON Operator Reference
- Programmer’s Guide
2.4 图像获得接口
HALCON的这个接口,提供了图像抓取供应商和HALCON之间 接口联系。当然,大多数的工业通用的接口已经集成在HALCON的库里面了。
【参考】
- Solution Guide II-A
2.4 I/O接口
就是输入输出设备。
参考:
1 Quick Guide to HALCON (mvtec.com)
注意,以下资料是限制访问:
2 HALCON documentation: