在做DEMO的时候,一般读入多张图片,然后在for循环里放置你的算法,以下是读入图片的几种方式
-
多张图片组合成 数组 读入
ImageFiles := [] ImageFiles[0] := 'C:/Users/Administrator/Desktop/131515e4bxfxloll8nw84m.png' ImageFiles[1] := 'C:/Users/Administrator/Desktop/131512hszdqw33io3qsiaq.png' ImageFiles[2] := 'C:/Users/Administrator/Desktop/131503yq1eem8faeqlaf6l.png' for Index := 0 to |ImageFiles| - 1 by 1 read_image (Image, ImageFiles[Index]) mean_image (Image, ImageMean, 3, 3) scale_image (ImageMean, ImageScaled, 5.93023, -866) binary_threshold (ImageScaled, Region, 'max_separability', 'light', UsedThreshold) endfor
-
文件夹的方式读入
path:='C:/Users/G3/Desktop/Intensity'
list_files (path, ['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])
parse_filename(ImageFiles[Index], BaseName, Extension, Directory)
write_image (Image, 'bmp', 0, Directory+'/out'+BaseName+'.')
endfor
demo 01 ,指定取图jpg和png文件,同时‘ignore_case’忽略大小写
list_files('C:/Users/King/Desktop/images', 'files', Files)
tuple_regexp_select (Files, ['.*(jpg|png)','ignore_case'], Selection)
demo 02 ,指定取图jpg和png文件,同时默认不区分大小写(.JPG和.jpg都可以)
list_image_files ('C:/Users/King/Desktop/images', ['png','jpg'], [], ImageFiles)
list_image_files ('C:/Users/King/Desktop/images', ['png','jpg'], [], ImageFiles)
for Index := 0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
endfor
1、按图片路径读取
第一步
list_files( : : Directory, Options : Files) *遍历文件夹
输入参数:
Directory: 目录(文件夹路径)
Options : 选项,包含以下几个选项
'files' 指定搜索的格式为文件
'directories' 指定搜索的格式为文件夹
'recursive' 指定可以遍历子文件夹下的文件
'follow_links'
'max_depth 5' 指定遍历的深度(此处为5)
'max_files 1000' 指定遍历的最大文件数目(此处为1000)
输出参数:
Files: 文件(文件的路径)
第二步
tuple_regexp_select( : : Data, Expression : Selection) *文件格式筛选
输入参数:
Data: 被选择的文件路径数组
Expression: 文件格式的筛选规则,举例如下:
//. 转义为 .
(bmp|JPG) 筛选的文件格式为bmp和jpg图片
'ignore_case' 忽略大小写
Selection: 选择出的文件路径数组举例:
list_files ('E:/项目图片/Cam1/OK品', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima)$','ignore_case'], ImageFiles)
for imgIndex := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[imgIndex])
endfor
2、按图片序号读取
****图片名称为0.bmp、1.bmp等等
for i := 0 to 20 by 1
read_image (Image, 'E:/项目图片/Cam1/OK品/亮/'+i+'.bmp')
endfor
halcon读取多张图片的几种方式