Halcon安装:
halcon介绍:
德国MVtec公司开发的一套完善的标准的机器视觉算法包。底层功能算法多,运算性能快。halcon不能提供相应的界面编程需求,需要和vs一起才能构成一套完整软件。
软件界面
halcon数据类型
Halcon的数据类型主要分为两大类:图形参数(Iconic Parameters)和控制参数(Control Parameters)。
图形参数(Iconic Parameters)
图形参数用于表示图像和图像中的对象
-
Image(图像):
- 图像是Halcon中最基本的数据结构,用于表示二维图像。它包含了图像的像素值、尺寸、颜色模式等信息。
- 图像可以是灰度图像(单通道图像)或彩色图像(多通道图像),颜色通道可以是RGB、HSV等。
- 图像可以通过读取文件、采集设备或者算法生成。
-
Region(区域):
- 区域用于表示图像中的感兴趣区域。它可以是一个矩形、圆形、多边形等形状,也可以是由像素组成的任意形状。
- 区域可以用于图像分割、目标检测、形状匹配等应用。
- 区域可以通过二值化、形状操作或者算法生成。
-
XLD(Extended Line Descriptions,扩展线描述符):
- XLD是一种特殊的数据结构,用于表示图像中的线段、圆弧、椭圆等几何形状。
- XLD比传统的像素级表示更精确,可以达到亚像素级别,因此在边缘检测、形状拟合、曲线跟踪等任务中有重要应用。
- XLD可以通过边缘检测、边缘连接或者算法生成。
控制参数(Control Parameters)
控制参数用于控制图像处理的过程和结果,主要包括以下几种类型:
-
String(字符串):
- 用于表示文本信息,如文件名、路径、错误信息等。
-
Integer(整型):
- 用于表示整数值,如图像尺寸、阈值、循环次数等。
-
Real(实型):
- 用于表示浮点数,提供比整型更高的精度,常用于图像处理中的参数设置。
-
Tuple(元组):
- 元组是Halcon中用于存储和处理数据的基本数据结构,它可以存储数字、字符串、图像、区域等各种类型的数据。
- 元组可以进行各种操作,如读取、修改、拼接、查询等,在Halcon中广泛应用于参数传递、结果返回和数据存储。
-
Handle(句柄):
- 句柄是一种特殊的控制参数,用于唯一标识一个对象或资源。在Halcon中,句柄可以用来表示窗体、文件、模板等对象。
halcon中常用逻辑运算符
在Halcon中,运算符(或称为操作符、函数)是执行各种图像处理任务的基本元素。这些运算符可以分为多个类别,每个类别都有其特定的功能和用法。以下是对Halcon中常见运算符的解析:
1. 数学和逻辑运算符
- 算术运算符:如加(+)、减(-)、乘(*)、除(/)等,用于对数值进行基本算术运算。
- 逻辑运算符:如与(and)、或(or)、非(not)等,用于进行逻辑判断和操作。
- 数学函数:如sin、cos、tan等三角函数,exp、log等指数和对数函数,以及pow、ldexp等幂函数,用于进行复杂的数学计算。
2. 控制流运算符
- 条件语句(if...endif、if...else...endif):根据条件判断的结果执行不同的代码块。
- 循环语句(for...endfor、while...endwhile、repeat...until):重复执行代码块直到满足特定条件。
- 控制语句(break、continue、return、exit、stop):用于控制循环和程序的执行流程。
3. 赋值和元组操作
- 赋值运算符(:=):用于将表达式的值赋给变量。
- 元组操作:包括元组的创建、合并、分割、选择元素等操作。元组是Halcon中用于存储和处理数据的基本数据结构,可以包含数字、字符串、图像、区域等多种类型的数据。
4. 字符串操作
- 字符串赋值和连接:使用单引号将字符串括起来,并使用加号(+)连接字符串。
- 字符串函数:如strlen(获取字符串长度)、strchr(在字符串中搜索字符)、strstr(在字符串中搜索子字符串)等,用于对字符串进行各种操作。
5. 特殊运算符
- try...catch...endtry:用于捕获和处理程序执行过程中可能出现的错误。
- dev_error_var()与dev_set_check():与try...catch...endtry类似,用于错误捕获和处理
-
6.图像处理运算符
- 图像加载(read_image):用于从文件系统中加载图像。支持多种图像格式,如BMP、JPEG、PNG等。
- 图像显示(disp_image):在图像窗口中显示图像。支持图像的缩放、平移和旋转等操作。
- 灰度转换(rgb_to_gray):将彩色图像转换为灰度图像,以便进行边缘检测、形状识别等任务。
- 图像滤波(filter):对图像进行滤波操作,如高斯滤波、中值滤波等,用于图像的平滑、增强和去噪。
- 边缘检测(edges_image):检测图像中的边缘,提取边缘轮廓。
- 形状匹配(find_shape_model):在图像中寻找特定形状的对象,通过事先学习的形状模板进行匹配。
数据类型和运算符
元组操作
Halcon 算子参数
作用:
执行各种图像处理任务的基本单元。每个函数都有其特定的输入和输出参数,这些参数定义了函数如何工作以及产生的结果
输入参数
函数执行时所需的数据或设置,可以是图像、区域、控制变量(如整数、浮点数、字符串等)或任何其他可以传递给函数的数据类型。
输出参数
函数执行后产生的结果。输出参数可以是图像、区域、控制变量(如修改后的值)或任何其他数据类型。
threshold(Image, Region, MinGray, MaxGray, 'dark')
Image
是输入图像,MinGray
和 MaxGray
是控制阈值范围的输入参数,而 Region
是输出参数,表示根据阈值处理生成的区域。