halcon学习笔记——(1)HDevelop language(语法结构特点)

本文详细介绍了Halcon的HDevelop语言特性,包括语法结构、数据类型(图像参数Iconic、控制参数Control)、基本语句(赋值、元组操作、数组操作)以及结构语句(if...endif、for...endfor等)。此外,还讲解了异常处理和单摄像机标定过程中的关键算子及参数含义。
摘要由CSDN通过智能技术生成

(一)Halcon的语法结构特点

类似于Pascal 与 Visual Basic,大部分的语句是Halcon提供的算子,此外也包含了少部分的控制语句;

不允许单独声明变量;

提供自动的内存管理(初始化、析构及OverWrite),但句柄则需要显示释放;

C++(算子模式)

通过代码导出,以C++为例,默认导出为算子型的语法结构,而非面向对象的;在此模式下,全部函数声明为全局类型,数据类型只需要用Hobject、HTuple两类类型进行声明;

C++(面向对象)

可以以面向对象的方式重写代码,也即利用类及类的成员函数;

在这种模式下,控制变量的类型仍未HTuple,而图形数据可以由多种类型,如HImage等;

halcon学习笔记——(2)HDevelop language(基本数据类型)

二、Halcon数据类型

两类参数:

1、图形参数Iconic (image, region, XLD)

2、与控制参数Control (string, integer, real, handle),

在Halcon算子的参数中,依次为:输入图形参数、输出图形参数、输入控制参数、输出控制参数;并且其输入参数不会被算子改变。

1、图形参数Iconic:

(1)Images

在Halcon中,Image = Channel + Domain , 像素点存放在Channel矩阵中,根据ROI来描述Image。

Image相关操作:

输入:从文件、从设备

生成:外部图像数据、空内存区域;

显示:disp_image()图像首通道灰度图;disp_color() 彩色图;disp_channel()某特定通道;disp_obj() 自动判别类别;

缩放:set_part() 设置显示区域;set_part_style() 设置显示参数;

说明:

Ø Multiple channels //多通道图像,可以是灰度图像或RGB图像

Ø Arbitrary region of interest //ROI区域图像

Ø Multiple pixel types(byte, (u)int1/2/4,real, complex, direction, cyclic, vector_field)

byte, uint2 //灰度图像的标准编码

int1, int2 //Difference of two images or derivates with integer precision(??)int4 //两幅灰度图的频谱

direction //图片边缘的梯度方向

real //边缘提取及特定灰度值的轮廓

complex //图片频率分布

cyclic //Assigning one "gray" value to each color(??)

vector_field //连续图形的光学流分布

(2)Regions

以行列坐标形式储存,有广泛的应用,特点是高效,可利用同态算子。比如用阈值对图像分割的结果,其他系统中称为BOLB,AREA等。

(3)Extended Line Description (XLD)

图像均用像素点保存,而像素点是整型的,不连续的,Halcon做了拓展,定义了亚像素(subpixel)的描述几何轮廓的对象:xld,主要用在亚像素测量的背景下,可用于如提取边缘、构建轮廓等等,xld在模板匹配、图形校准等多方面有重要的用途。

说明:

Subpixel accurate line and edge detection(亚像素精度的线和边缘检测)

Generic point list based data structure(依据数据结构产生点的表)

Handling of contours, polygons, lines, parallels, etc.(对轮廓,多边形,线等进行操作)

2、控制参数Control:

String类型变量由单引号’括起来;此外还有一些特殊字符;

Boolean型变量包括 true ( = 1 )、 false ( = 0 ) ;不为零的整数将被认为true;但绝大多数的Halcon函数接受字符串型的表达:’true’‘false’,而非逻辑型表达;

此外,Halcon支持的类型还包括图形元组控制变量元组句柄

元组的概念,使得可以用一个变量传递数个对象,可以由重载后的函数来进行处理;图形元组的下标从1开始,控制变量元组下标从0开始;句柄则可以用来描述窗体、文件等等,句柄不能是常量。

halcon学习笔记——(3)HDevelop language(基本语句)

1、标准赋值

Ø assign(Input, Result)     //编辑形式,永远都是输入在前,输出在后

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值