read_image
函数的作用是从指定路径读取图像文件。
Halcon中参数构成为,read_image( : Image : FileName : )
它接受两个参数:Image
表示要读取的图像对象,Path
表示图像文件所在的路径。该功能的函数在opencv应用里基本通用,结构解析类似,函数名对于不同语言略有不同,以下是halcon中的简单示例代码:
Path:='lcd/Image_'
*读取文件名为Image_01的图像
read_image(Image,Path+'01')
for f:=1 to 3 by 1
*读取一张图像 1=>'01'
*依次读取文件名为Image_01,Image_02,Image_03的图像
read_image (Image, Path + f$'.2i')
endfor
Path1:='lcd/Image'
for i:=4 to 6 by 1
*依次读取文件名为Image04,Image05,Image06的图像
read_image (Image, Path1 + i$'02d')
endfor
图像文件夹中将图片命名格式统一成例如Image_01、Image_02这样的格式,可以在read_image()里面加入约束格式来读取。在读取图像文件时,函数中可以通过如上代码改变路径Path+'01',同理Path+'02'。
在函数中,for循环里面的f$'.2i'是一个占位符,用于表示图像文件名中的数字部分。实际使用时,需要将该占位符替换为要读取的图像文件的具体数字标识。
在halcon中还有规定的字符格式输出,例如:
d := 1$'.6' //小于六位时,在左边补零,大于不影响,d=000001
e := 12$'.3'//小于三位时,在左边补零,大于不影响,e=012
i$'02d'表示后面的数字是两位数,i为个位整数时,在左边补0,即0+‘i’。同时i$'02d'相当于i$'.2'相当于i$'02'。
f$'.2i'和
i$'02d'中的前面的f、i为for循环中的变量1,2,3;后面的‘.2i’和‘02d’表示的是占位数和格式。其中2为两位,d(或i)用来表示十进制整数格式。
同C语言格式符理解:
(1)d(或i):十进制整数。输出格式是d和i没有区别,输入时d只能输入十进制整数,i可以输入八进制,十进制,十六进制整数。
(2)o:八进制整数。
(3)x(或X):十六进制整数。
(4)u:unsigned型数据,十进制无符号数。
(5)c:一个字符。
(6)s:一个字符串。
(7)f:小数形式的实数(包括单、双精度)。(单:7位,双:16位)。
(8)e(或E):指数形式的实数。
(9)g(或G):实数。
在实际使用时,需要将路径和图像对象替换为自己的值,并确保图像文件存在于指定路径中。