视觉软件HALCON的数据结构

描述

在研究机器视觉算法之前,我们需要先了解机器视觉应用中涉及的基本数据结构。Halcon数据结构主要有图像参数和控制参数两类参数。图像参数包括:image、region、XLD,控制参数包括:string、integer、real、handle、tuple数组等。

机器视觉

机器视觉

1. Image(图像)

Image指在从文件或者相机等读取到内存之后,所得到的HALCON图像,其包括图像的颜色空间、长宽、通道、灰度等信息。根据每个像素信息不同,通常将图像分为二值图像、灰度图像、RGB图像。

图像的主要部分是channels通道,即包含各种像素类型的灰度值矩阵,图像内像素点的值用几个灰度值描述,那么图像就是几通道。比如灰色图像,每个像素的灰度值为0~255,图像有一个通道;而RGB的每个像素拥有R(Red,红色)、G(Green, 绿色)、B(Blue, 蓝色)3个通道,各自的取值范围都是0~255。

机器视觉

值得注意的是,在一般的图像处理中,灰度图像已经可以满足要求,因此为了节约计算量并加快速度,通常会将彩色图像转换成灰度图像进行处理。

2. Region(区域)

Region指图像中的一块包含某些特性的区域,这个特定的区域也称为图像的定义域或感兴趣区域(ROI),它是一幅图像中一个任意的像素子集,也是离散平面的一个任意子集。

Region的作用:

对象分割(blob分析)

用作图片域(Domain),只处理域内像素,可缩短运算时间

寻找特征

机器视觉

3. XLD(亚像素轮廓)

XLD(eXtended Line Descriptions)称为亚像素精度轮廓,指图像中某一块区域的轮廓,即一组有序的二维点集,二维点顺序用来说明彼此相连的关系。轮廓是用浮点数表示XLD各点的行、列坐标。

图像中Image和区域Region这些数据结构是像素精度的,点与点之间的最小距离就是一个像素的宽度。在实际工业应用中,可能需要比图像像素分辨率更高的精度,这时就需要提取亚像素精度数据,亚像素精度数据可以通过亚像素阀值分割或者亚像素边缘提取来获得。

机器视觉

4. Handle(句柄)

Handle句柄是一个标识符,是用来标识对象或者项目的。它就像我们的车牌号一样,每一辆注册过的车都会有一个确定的号码,不同的车号码各不相同,但也有可能在不同的时期出现两辆号码相同的车,只不过它们不会同时处于使用之中而已。

在程序设计中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。从数据类型上来看,它只是一个32位(或64位)的无符号整数。

机器视觉

5. Tuple(数组)

Tuple可以理解为C/C++语言中的数组,数组是编程语言中常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常可通过数组元素的索引来访问数组元素。C/C++语言中的数组操作大都可以在Tuple中找到对应的操作。

机器视觉

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分