天天看点

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取

作为Halcon学习者,在使用HDevelop编程时,最基础的操作就是先将测试图像读取导入。核心函数算子是read_image(),下面我们来分别演示如何使用它读取单张图片、多张有序图片和多张无序图片。

​一、读取单张图片

① 代码读取

​* (1)-Halcon读取图像--读取单张图片​

​​

​read_image(Image, './imgs/1.bmp')​

② 助手读取--》选择文件--》插入代码: 

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取

​* Image Acquisition 01: Code generated by Image Acquisition 01​

​​

​read_image (Image, 'E:/Practice/Halcon/Halcon_Study/Function_Study/imgs/1.bmp')​

二、批量读取图片--有序(命名有序图片)

① 图片命名规则:'./imgs/1.bmp', './imgs/2.bmp', './imgs/3.bmp'

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取
​​* i取值为1,2,3,图片路径为'./imgs/1.bmp', './imgs/2.bmp', './imgs/3.bmp'​​​​for i:=1 to 3 by 1​​​​'./imgs/' + i + '.bmp')​​​​endfor​​      

② 图片命名规则:'./imgs/left01.bmp', './imgs/left02.bmp', './imgs/left03.bmp'

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取
​​* i取值为1,2,3,图片路径为'./imgs/left01.bmp', './imgs/left02.bmp', './imgs/left03.bmp'​​​​for j := 1 to 3 by 1​​​​'./imgs/' + 'left' + j$'02')​​​
​​​endfor​​      

三、批量读取图片--无序(命名无序图片)

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取

① 代码读取

​​* (3)-Halcon读取图像--批量读取(命名无序图片)​​​​* 列出imgs文件夹下所有文件路径​​​​list_files ('./imgs', 'files', ImageFiles)​​​​* 选择符合条件的文件(jpg/png/bmp)​​​​tuple_regexp_select (ImageFiles, '.*jpg|png|bmp', Selection)​​​​* 循环读取文件夹中的图像​​​​for i:=0 to |Selection| - 1 by 1​​​​    read_image (Image_Test, Selection[i])​​​​endfor​​      

② 助手读取--》选择路径--》插入代码: 

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取
​​* Image Acquisition 01: Code generated by Image Acquisition 01​​​​list_files ('E:/Practice/Halcon/Halcon_Study/Function_Study/imgs', ['files','follow_links'], ImageFiles)​​​​tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)​​​​for Index := 0 to |ImageFiles| - 1 by 1​​​​    read_image (Image, ImageFiles[Index])​​​​01: Do something​​​​endfor      

四、读取例程图片

Halcon例程图片路径:C:\Users\Public\Documents\MVTec\HALCON-20.11-Steady\examples\images

Halcon安装时已经上面的目录加入到环境变量了,所以我们可以直接用这些图片。

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取
Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取

例如:read_image (Image, 'printer_chip/printer_chip_01')

Halcon读取图片方法总结--单张读取、有序批量读取、无序批量读取

读取到的图片就是下面目录下的第一张图