00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 开发环境
  • 03. 基本类型
  • 04. 控制类型
    • 4.1 整型
    • 4.2 实型
    • 4.3 字符串
    • 4.4 Boolean类型
    • 4.5 句柄类型
  • 05. 常量和元组
    • 5.1 常量
    • 5.2 元组
  • 06. 附录

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语言基础(一)-基本类型和常量相关推荐

  1. 【机器视觉】 HDevelop语言基础(五)-多线程

    00. 目录 文章目录 00. 目录 01. 概述 02. 启动线程 03. 等待子线程结束 04. HDevelop中线程的执行 05. 监视线程 06. 挂起和恢复线程 06. 附录 01. 概述 ...

  2. 【Java基础】基本类型和包装类的区别

    前言 Java 一种静态编程语言,所有变量和表达式是在编译时就确定的.同时,Java 又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的.在 Java 中共有8种基本类型数 ...

  3. 【机器视觉】 HDevelop语言基础(四)-流程控制语句

    00. 目录 文章目录 00. 目录 01. 概述 02. if 03. if-else 04. elseif 05. while 06. until 07. for 08. continue 09. ...

  4. 【机器视觉】 HDevelop语言基础(六)-错误处理

    00. 目录 文章目录 00. 目录 01. 概述 02. 跟踪算子的返回值 03. 异常处理 04. HDevelop错误码 05. HDevelop 元组操作总结 06. 附录 01. 概述 本节 ...

  5. 【机器视觉】 HDevelop语言基础(三)-容器和保留字

    00. 目录 文章目录 00. 目录 01. 保留字 02. 容器概述 03. 构造容器 04. 容器元素操作 05. 预留 06. 附录 01. 保留字 表 8.25 中列出的标识符是保留字,它们的 ...

  6. 【机器视觉】 HDevelop语言基础(二)-变量和表达式

    00. 目录 文章目录 00. 目录 01. 概述 02. 变量的类型 03. 变量的作用域 04. 图像对象操作 05. 输入控制参数表达式 5.1 元组操作的一般特征 5.2 赋值操作 5.3 元 ...

  7. 2.3 Go语言中的字符型和常量定义

    字符类型 字符类型也是常用的类型之一,Go语言中的字符类型使用string关键字,我们对最早的hello, world示例进行改造. package mainimport "fmt" ...

  8. C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出

    1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...

  9. js-day01-js语言基础

    JavaScript简介: JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚 ...

最新文章

  1. sql中的text字段如何导入oracle
  2. [swift]-使用JavaScript解决WKWebView无法发送POST参数问题
  3. C语言可变参数只会用算啥本事?看我来抽丝剥茧干翻它!
  4. 十年 | 我花了十年,才弄明白了Node.js
  5. python内点法_python射线法判断一个点在图形区域内外
  6. matlab生成chirp信号,chirp信号(chirp信号的产生)
  7. Clark变换与Park(派克)变换
  8. 不谋一时不足以谋一域_请问不谋万世者不足谋一时,不谋全局者,不足谋一域,接下来是什么?这段话太精辟了,能不能把全文发送过来?...
  9. AndroidStudio 编译报错 abc_list_selector_disabled_holo_light.9.png
  10. CocosCreator 方块消除教程
  11. 咋阻止别人用计算机监控我家,我想用我家里的电脑控制办公室电脑的打印机怎么处理?...
  12. 尚硅谷Vue3(天禹老师主讲)的笔记
  13. 信号驱动任务执行(pause、sigsuspend函数)
  14. SpringBoot项目中使用set方法后,自动保存问题
  15. 删除单号中的符号并查询快递物流信息
  16. 程序人生-感受湖光景色随笔
  17. 使用gpio_direction_output()无法设置GPIO原因分析
  18. web开发编译器_Web开发人员资源:大型编译
  19. 哈啰出行 - 铸将:领导力培养
  20. 淡雅唯美荷花中国风PPT模板

热门文章

  1. asp.net,关于Listview+DataPager控件使用
  2. 定制IE浏览器的尖兵利器 - BHO
  3. SuperMap产权登记管理平台
  4. 在ASP.net 中对GridView中数据的删除、编辑等操作:
  5. android 声音,同时播放声音Android
  6. wgn和awgn函数
  7. Java黑皮书课后题第5章:**5.27(显示闰年)编写程序,显示从101到2100期间所有闰年,每行显示10个。数字之间用一个空格字符隔开,同时显示这期间闰年的数目
  8. linux除了cat读取文件内容,linux cut命令和cat命令以及查看文件内容命令总结
  9. Learning the Vi Editor, 6th Edition学习笔记(0)
  10. EOJ Monthly 2019.2 (based on February Selection) D.进制转换