【HALCON系列】--- 基本结构

HALCON基本结构

  • HALCON参数可分为两类:
    • 图形参数 Iconic(image, region, XLD)
    • 控制参数 Control(string, integer, real, handle)

一. 图形参数 Iconic

1. Image图像

  • 根据像素信息的不同,可分为:二值图像、灰度图像、RGB图像,由一个或多个通道组成
  • 像素类型:
    * Byte:每像素1字节,8位无符号,标准的灰度图像(28: 0-255);
     * Uint2:16位无符号,标准的灰度图像(216:0-65535);
     * int1:每像素1字节,8位有符号(-128-127),两帧图像的差异使用;
     * int2:每像素2字节,6位有符号,两帧图像的差异使用;
     * int4:每像素4字节,32位有符号,两幅图像的灰度频谱使用;
     * int8:每像素8字节,带符号,仅在64位系统上使用;
     * Direction:每像素1字节,8位无符号,值为0-179,值180-254会自动设置为值255,该值被解释为未定义的角度。边缘梯度会有这种类型;
    * Real: 浮点数的实数类型,用于存储实数类型,每像素4字节,3D中常用;
     * Complex:包括实部和虚部,是在复数存储时使用到的一个数据类型,每个像素用两个real值,用频率表示图像时使用;
      * Cyclic:以循环的方式来存储数据,即如果灰度值超过255,数据又会从零开始不断循环----8位无符号,给每个颜色分配灰度值;
      * Vector_filed:两帧real类型图像,描述X或者Y方向运动
  • 相应的转换算子:

convert_image_type(Image : ImageConverted : NewType : )

  将任意类型的图像转换为新图像类型,如果从较大的灰度值范围转换为较小的 灰度值范围, (int4 到 byte),则过大或者过小的值将被简单地“裁剪”。如果结果图像的类型位"Direction",则不在其有效范围的灰度值将设置为255,以将其标记为无效。通常在调用此运算符之前,调用scale_image来调整灰度值的范围。

gen_image_const( : Image : Type, Width, Height : )

  创建一个具有恒定灰度值的图像。

gen_image_proto(Image : ImageCleared : Grayval : )

  创建一个具有特定灰度值的图像。

2.Regions

  • 区域定义为图像中的一组像素集,可以是任意的形状,一个像素也可以是一个区域。将图像像素转换成区域来计算,可以减少资源的占用,方便存储和计算。

gen_rectangle1( : Rectangle : Row1, Column1, Row2, Column2 : )

 创建一个平行于坐标轴的矩形,(Row1, Column1)代表左上角坐标,(Row2, Column2)代表右下角坐标

gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : )

 创建一个任意方向的矩形,( Row, Column)代表中心点坐标,(Length1, Length2)代表矩形的长宽, Phi代表纵轴与水平线的夹角。
其他算子等用到再叙述,干巴巴的容易忘记。

3. XLD

  • 像素是图像成像的最小单位,放大图像时每一个方格就代表一个像素,像素之间的灰度值是突变的,halcon定义了一个亚像素(subPixel),直接穿过像素进行边缘的绘制,描述几何轮廓的对象。

threshold_sub_pix(Image : Border : Threshold : )

 对于输入图像,定义一个threshold灰度值,推算出每个像素中这个灰度值应该出现的位置,分别连线得到一个亚像素轮廓。

edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

 亚像素边缘提取,这个算子的内部实现较为复杂,后面专门讲述

二、控制参数Control

  • Tuple元组:与C语言中的数组类似,其长度为大于等于1即可作为正常变量使用,第一个索引值为0,最大索引值为变量长度减1。其类型包括int,double,string等。
    Tuple 与 C语言的数组的差别:C语言的数组只能存放一种变量,而且数组可以是二维或者三维的,而HALCON的数组Tuple可以看作是一个结构体,可以同时存储多种数据类型如字符串、整数和浮点数,而且只能是一个单一维度的数组
  • handle,句柄。用来标志对象获知项目的标识符,可用用来描述窗体、文件等。如窗口句柄、相聚句柄、模板句柄等。
  • real 实型(double)、string字符串、intger整型其操作与其他语言一致。

  • C#中对应halcon的数据结构有两种:HObjectHTuple

HObject的初始化:
  1、 HObject = null ;
  * HObject是没有对象,对象不存在。在halcon算子中,只能作为输出变量(即out位置),作为输入变量就会报错。
  2、 HObject hObject;
    HOperatorSet.GenEmptyObj(out hobject);
 * 表示hobject是有对象,对象存在,但是对象是空的。在halcon算子中,可以作为输出变量和输入变量
HTuple的初始化:
  HTuple hTuple = new HTuple;

引用:
Halcon学习—halcon数据结构介绍

halcon中HObject和HTuple的两种数据结构的初始化(C#版

halcon数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值