1 Halcon数据结构

系列文章目录

1 Halcon数据结构
2 一致性增强扩散
3 锯片检测
4 序列号读取
5 印刷检测


1 Halcon数据结构

  • 系列文章目录
  • 前言
  • 1 Halcon数据结构
    • 1.1 Halcon Image 图像
      • 1.1.1 Image 的分类
      • 1.1.2 Image 的通道
    • 1.2 Halcon Region 区域
      • 1.2.1 Region 的初步介绍
      • 1.2.2 Region 的特征
    • 1.3 Halcon XLD 轮廓
      • 1.3.1 XLD 的初步介绍
      • 1.3.2 XLD 的特征
    • 1.4 Tuple 数组
  • 总结


前言

注:写本系列博客,主要是为了敦促自己学习,如有不足之处,请多批评指正!

学习思路:halcon有自己的编程语言(类似于MATLAB的脚本语言),所以第一步:学习语法与数据结构,第二步:实战(学习halcon自带例程)。


1 Halcon数据结构

  因为本人熟悉MATLAB、Python、C++等编程语言,对halcon语法简单看一看即可,所以直接跳过halcon语法部分直接学习其数据结构。
  Halcon数据结构主要有图像参数和控制参数两类参数。图像参数包括:image、region、XLD,控制参数包括:string、integer、real、handle、tuple数组等。图像参数是halcon独有的数据结构,所以进行重点学习。

1.1 Halcon Image 图像

 read_image(Image,'test.jpg')

  halcon 图像,在从文件或者相机等读取到内存之后,所得到的HImage;其包括图像的颜色空间、长宽、通道、灰度等信息。

1.1.1 Image 的分类

  颜色空间分为好几种,而在电脑中常用RGB颜色空间,其他颜色空间我只是用来做一下特殊处理使用,所以只介绍RGB颜色空间下的内容。
  根据每个像素信息不同,通常将图像分为二值图像、灰度图像、RGB图像。

1.1.2 Image 的通道

  图像内像素点的值用几个灰度级数值描述,那么图像就是几通道。比如,有一个数值表示的是灰度图像和二值图像,而有三个数值表示的是RGB彩色图像。

1.2 Halcon Region 区域

1.2.1 Region 的初步介绍

  区域指的是我们感兴趣的图像部分,是图像中包含某些特性的区域,它是一幅图像中一个任意的像素子集,也是离散平面的一个任意子集。

1.2.2 Region 的特征

区域特征主要分为三个部分:
(1)基础特征:Region的面积、中心、宽高、左上角与右下角坐标、长半轴、短半轴、椭圆方向、粗糙度、连通数、最大半径、方向等。
(2)形状特征:外接圆半径、内接圆半径、圆度、紧密度、矩形度、凸性、偏心率、外接矩形的方向及两边长度等。
(3)几何矩特征:二阶矩、三阶矩、主惯性轴等。

1.3 Halcon XLD 轮廓

1.3.1 XLD 的初步介绍

  XLD是指具有亚像素精度的轮廓,即一组有序的二维点集,二维点顺序用来说明彼此相连的关系。

1.3.2 XLD 的特征

XLD特征主要分为四个部分:
(1)基础特征:XLD的面积、中心、宽高、左上角与右下角坐标等。
(2)形状特征:圆度、紧密度、矩形度、凸性、偏心率、外接矩形的方向及两边长度等。
(3)几何矩特征:二阶矩、三阶矩、主惯性轴等。
(4)云点特征:云点面积、中心、等效椭圆半轴及角度、云点方向等。

1.4 Tuple 数组

  Tuples 数组可以理解为C++中的数组,C++中数组的操作大都可以在Tuples中找到对应的操作。
数组的数据类型:
(1)变量类型:int、double、bool、string等。
(2)变量长度:如果长度为1则可以作为正常变量使用;第一个索引值为0;最大的索引为变量长度减1。


总结

  image、region、XLD、Tuple等是halcon独有的数据结构,要进行重点学习,熟练之后就可以开始编写halcon程序。
  我觉得,如果你已经掌握了一门编程语言,再学习一门新编程语言就会非常的简单;写程序写的就是一个“过程”,而“过程”需要控制,而控制结构只有:循环、条件、中断等语句,且是几乎所有编程语言通用的,然后在学习一下新语言独特的数据结构,就可以开始写程序。

你可能感兴趣的:(学习Halcon,数据结构,计算机视觉,人工智能,图像处理)