机器视觉 HDevelop语言基础-基本类型和常量

Posted 沧海一笑-dj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器视觉 HDevelop语言基础-基本类型和常量相关的知识,希望对你有一定的参考价值。

00. 目录

01. 概述

主要介绍 HDevelop 语言的语法和语义。 换句话说,它说明了您可以在算子或过程调用的参数中输入什么。 在最简单的情况下,这是变量的名称,但也可能是像 sqrt(A) 这样的任意表达式。 此外,还描述了控制结构(如循环)和参数传递的语义。

所有的程序例子在%HALCONEXAMPLES%\\hdevelop\\Manuals\\HDevelop目录中。

02. 开发环境

Windows系统:Windows10

Halcon版本:HDevelop 19.11

03. 基本类型

HALCON 区分两种数据:控制数据(数字、字符串或句柄)和图标数据(图像、区域等)通过进一步区分输入和输出参数,我们得到四种不同类型的参数。这四种在 HDevelop 参数列表中总是以相同的顺序出现。 在参考手册中,算子签名的可视化方式如下:

operator (图标输入 : 图标输出 : 控制输入 : 控制输出)

如你所看到的,首先是图形输入,紧跟着的是图形的输出,其次是控制数据参数的输入,控制数据参数的输出。

这四个参数都有可能是空的。比如read_image函数,只使用了其中两个参数。

read_image ( : Image : FileName : )

这个read_image函数有一个输出图像参数,和一个输入控制参数,当使用该参数时,将使用该函数对应的参数类型,实际操作能够从指令窗口中显示出来:

read_image(Image, 'Name')

这些参数采用逗号分隔开来,输入参数有可能是变量、常量或者表达式,图像参数一定是变量参数,输出控制参数也一定是变量值。

The parameters are separated by commas. Input control parameters can either be variables, constants or expres-sions. An expression is evaluated before it is passed to a parameter that receives the result of the evaluation. Iconic parameters must be variables. Control output parameters must be variables, too, as they store the results of anoperator evaluation.

04. 控制类型

所有非图像数据在 HDevelop 中称作为控制数据(数字、字符串或句柄)表示。 名字派生自它们在 HALCON 算子中各自控制行为(效果)的函数图像处理(例如,分割算子的阈值)。 HDevelop 中的控制参数可能包含算术或逻辑运算。 控制数据项可以是以下数据类型之一:整数、实数、字符串、布尔值和句柄

4.1 整型

integer 数据类型的使用与 C 中语法规则相同。 输入整数可以以标准十进制表示法,十六进制加前缀 0x,八进制加前缀带有 0(零)的数字。

4711
-123
0xbeef (48879 in decimal notation)
073421 (30481 in decimal notation)

Integer数据类型在机器内部占有的位数,相当于C语言中的long类型的变量(4或者8个字节)。

4.2 实型

与C语言中的实型数据语法相同。

73.815
0.32214
.56
-17.32e-122
32E19

real类型数据相当于C语法中的double类型变量(8个字节)。

4.3 字符串

字符串是用单引号 (’) 括起来的字符序列。 特殊字符,例如换行符用类似 C 的符号表示,如表 8.1 所示(参见 C 语言进行比较)。 您可以使用格式 \\xnn 输入任意字符,其中 nn 是两位数 十六进制数,或使用格式 \\0nnn,其中 nnn 是三位八进制数。 如果字符串是明确则可以用更少的数字 。 例如,换行可以指定为 \\xa,除非字符串 以另一个十六进制数字 (0-F) 继续。
在这里插入图片描述

4.4 Boolean类型

常量 truefalse 属于布尔数据类型。 值 true 在内部表示由数字1,值为 false 由 0表示 。这意味着,在表达式 Val := true 中,Val 的有效值设置为 1。一般来说,除 0 以外的所有整数值都表示为真。 请注意一些 HALCON 算子为输入采用逻辑值(例如,set_system)。 在这种情况下,HALCON算子期望字符串常量,如“true”或“false”,而不是布尔值 true 或 false。

4.5 句柄类型

句柄是对复杂数据结构的引用,例如,与图像采集设备的连接或基于形状的匹配模型。

除了这些通用类型之外,还有一些特殊的常量和元组类型,从 HALCON 12.0 开始,HDevelop 也支持变量向量类型。

05. 常量和元组

5.1 常量

在算子使用过程中,系统提供一些返回值,表示该算子使用过程中的一些状态。 可以通过 dev_error_var 和 dev_set_check检查或者设定返回的状态,错误信息能够反馈异常的具体内容。 这些常量代表算子正常的返回值,即所谓的消息。 对于错误,没有可用的常量(有很多错误编号在内部,请参阅扩展包程序员手册)。
在这里插入图片描述
在这里插入图片描述

5.2 元组

在 HDevelop 类型元组中可以使用控制类型。 长度为 1 的元组被解释为一个原子值,可以认为声明一个元组。 一个元组可能由几个不同类型的数据项组成。 标准表示元组是包含在中括号中的元素的列表。
[] 指定空元组。 只有一个元素的元组被视为一种特殊情况,因为它可以在表示元组的声明,也可以指定为原子值:[55] 定义了与 55 相同的常量。
在这里插入图片描述

元组的例子是:

[]
4711
0.815
'Text'
[16]
[100.0,100.0,200.0,200.0]
['FileName','Extension']
[4711,0.815,'Hugo']

06. 附录

6.1 机器视觉博客汇总
网址:https://dengjin.blog.csdn.net/article/details/116837497

以上是关于机器视觉 HDevelop语言基础-基本类型和常量的主要内容,如果未能解决你的问题,请参考以下文章

机器视觉 HDevelop语言基础-容器和保留字

机器视觉 HDevelop语言基础-多线程

机器视觉 HDevelop语言基础-错误处理

机器视觉 HDevelop语言基础-流程控制语句

机器视觉 dev_open_dialog算子

机器视觉 exit算子