一、Halcon数据类型
Halcon有两种数据类型
1、控制数据类型
简单的来说就是常规的数字、字符串等。主要起到控制参数的目的
2、图标数据类型
比较特殊,这种数据类型就是图像数据,主要用来传递图像得出结果的
数据类型按照数和输出区分可以细分为输入控件和输出控件。**值得注意的是,输出控件一定为变量,因为他保存的是算子输出的结果。
二、控制类型数据
1、控制类型有一下几种:
integer,real,string和boolean分别对应整形、实数型、字符串型、和布尔型
(1)、integer整形
它相当于C语言中的long类型(占4或8个字节)
4711
-123
0xbeef(48879,十进制表示法)
073421(30481,十进制表示法)
(2)、real实数型
它相当于C语言中的double类型(占8个字节)
73.815
0.32214
.56
-17.32e-122
32E19
(3)、string字符串类型
与C++不同,Halcon的字符串用的是单引号‘来括起来的一串字符,并不是双引号“
’张三‘
‘C:\progress\MVTec \halcon\img’
其他特殊字符与转义序列与C语言一样。所以上面的路劲的反斜杠有两个,因为反斜杠为转义序列,所以要用反斜杠标称一下。
(4)、boolean布尔类型
与C语言基本相同,有两个值true和false。true表示1,false表示0。注意true与false并没有单引号或双引号。
三、Tupe数组(元组)
元组类似于数组但是却又很大的区别。在C语言中数组存储的类型一定是样的。而Halcon不同的元组不同,他可以存储不用的类型的值并构成一连串的存储区域。
[] 空元组
4711 整数常量
0.815 实数常量
‘文本’ 字符串常量
[16] 只有一个元素的元组,它本质上与常量16并无区别
[100.0,100.0,200.0,200.0] 全部都是实数的元组
[‘FileName’,‘Extension’] 全部都是字符串的元组
[4711,0.815,“雨果”] 混合元素的元组
四、变量
1、变量命名
Halcon变量名的定义一般是以字母、数字和下划线组成。
2、数据类型
Halcon的变量是无需事先声明数据类型的,它可以接受任意的数据,然后根据有最先使用的数据来决定他到底是什么数据的变量。所 以从特点上来说的话,相当于C++语言中泛型。Halcon变量创建初期数据类型不确定,直到程序中第一次使用它的时候才决定数据类型。
3、变量的作用域
Halcon中的变量作用域分为局部变量和全局变量。在默认情况下,所有的变量都是局部变量,他们仅在程序中有作用。不同程序中可以定义相同的变量名而不会干扰。如果用global关键字进行声明变量的话,那么此变量就是全局变量。全局变量可以在整个程序中访问。若要在其他的程序中使用全局变量则一定要在待使用的程序中重新声明一下变量并且是以global开头。
全局变量使用举例:
如下有两个程序文件:
(1)、主程序
-
定义全局变量
global tuple File //全局元组变量,名为FIle
global object Image //全局图标变量,名为Image
…
File := ‘particle’ //变量赋值用:=号,字符串用单引号
read_image(Image, File) //读取图像函数
process_image() //处理函数(2)、图像处理程序
使用全面局变量
global object Image //若要在其他的程序中使用全局变量则一定要在程序中重新声明一下,否则就会创建同名的局部变量
…
bin_threshold(Image, Region) //图像二值化处理
File := ‘fuse’ //这里的File由于没有加global关键字,所以他是局部变量并不能访问上面的全局变量File
read_image(Image, File)
return()未完待续。。。。