Halcon一日一练:读取文件目录图像的三种方法

时间:2021-11-11 14:03:49

第一种方法:

读了一个单一图像:

read_image(Image,'fabrik')

这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的方式来读取指定的目录文件:

read_image(Image1,'E:/Halcon一日一练/参考资料/images/图片1.jpg')

图像设定的映像文件目录可以进行关闭,set_system函数可以对映像文件目录进行关闭,关闭之后必须读取图像的绝对地址,否则,系统将会报错,

set_system('image_dir','false')//关闭图像映像文件

read_image(Image,'fabrik')//此时系统会报错

在关闭图像文件目录的情况下,再读取图像将会出现异常,此时我们需要重新设置默认读取文件的目录:

set_system('image_dir','C:\\Program Files\\MVTec\\HALCON-12.0\\images')

read_image(Image,'fabrik')

如果想要读取自身设定的图像目录,则是如下方式:

set_system('image_dir','E:\\Halcon一日一练\\参考资料\\images')

read_image(Image,'图片1')

操作完成后一定要将系统设定回来,并确认目录定义符一定是上斜线

set_system('image_dir','C:\\Program Files\\MVTec\\HALCON-12.0\\images')

set_system('image_dir,'true')

第2种方法:

如果要读取一组图像,则需要对图像文件的保存名称有一定的规则要求,一般按以下格式设定:‘name_number.imageform'

首先保存为图像的名称,下划线后面追加图像数字序列,这种方式有利于图像的循环读取,看看下面的语句:

for j:= 1 to 9 by 1

read_image(Image,'fonts/arial_a'+J+'.png')//读取图像

dev_display(Image)//显示图像

stop()//暂停

endfor

我们将C:\Program Files\MVTec\Halcon-12.0\images\fonts目录下的9个图像文件依次读取并且显示出来,中间的+号代表了字符间的合并。

第三种方法:

还有一种更好的方法,可以依次读取目录中的所有文件,这种采用虚拟设备读取文件内容的方式,可以直接读取文件中所有的图像,这种虚拟设备的图像读取方式,读取外部设备图像的方式非常接近,只不过获取图像的设备设置为文件方式,操作的方法和外部设备类似。

例程如下:

tuple_enviroment('HALCONROOT',RootDir)//文件目录

DirName:=RootDir+'\images'

*打开文件设备

open_framegraber('File',-1,-1,-1,-1,'default',-,'default',-1,'default',DirName,'default',-1,-1,AcqHandle)

while(1)

get_framegrabber_param(AcqHandle,'device',CurrentFileName)//设置图像设备对应的文件目录

grab_image(Image,AcqHandle)//读取文件

endwhile

close_framegrable(AcqHandle)//关闭设备