【Halcon基本操作】文件遍历、读写、格式筛选等

1.1 打开文件

open_file()——用以打开文件
函数原型:open_file( : : FileName, FileType : FileHandle)

参数列表
FileName:文件的路径和名称。
FileHandle:第三个是文件的句柄
FileType:文件类型,可以决定打开文件的方式。
有下面几种选择:
‘input’:打开已经存在的文件,以ASCII格式读取。也就是说这个文件需要在路径下存在,而且使用该类型是不能写入,只能读取。
‘output’:打开一个新的文件,以ASCII格式写入。不存在文件时将创建一个。
‘append’:已经存在的输出文件在文件末尾打开,以ASCII格式写入。在一个已经存在的文件末尾写入,不会新建文件。
‘input_binary’:打开已经存在的文件,以二进制格式读取。也就是说这个文件需要在路径下存在,而且使用该类型是不能写入,只能读取。
‘output_binary’:打开一个新的文件,以二进制格式写入。不存在文件时将创建一个。
‘append_binary’:已经存在的输出文件在文件末尾打开,以二进制格式写入。在一个已经存在的文件末尾写入,不会新建文件。

1.2写入文件

fwrite_string()——写入文件
函数原型fwrite_string( : : FileHandle, String : )
第一个参数就是open_file()的输出,第二个参数为要写入的字符串,
官方示例:

fwrite_string(FileHandle,['text with numbers:',5,' and ',1.0])

输出为:

text with numbers:5 and 1.00000

当要输出的内容不是单个的字符串、数字或变量的时候,要用[]括起来,剩下的和C++的输出流有相似的地方,字符串加”,字符串与变量或数字区分用“,”只是在C++中我们使用流运算符<<。
fnew_line(FileHandle)用以换行
例如:

open_file ('D:/文件.txt', 'output', FileHandle)
fwrite_string(FileHandle,'变量1:')
fwrite_string(FileHandle,angle)fnew_line(FileHandle)

1.3遍历文件夹

list_files — 遍历目录中的所有文件
函数原型:list_files( : : Directory, Options : Files)
参数
Directory(input_control):目录(文件夹路径)
Options(input_control):处理选项
        默认值: ‘files’
        建议值:
                ‘files’ 指定搜索的格式为文件
                ‘files’ ‘directories’ 指定搜索的格式为文件夹
                ‘files’ ‘recursive’ 指定可以遍历子文件夹下的文件
                ‘files’ ‘follow_links’
                ‘files’ ‘max_depth 5’ 指定遍历的深度
                ‘files’ ‘max_files 1000’ 指定遍历的最大文件数目
Files(output_control):文件(文件的路径)

1.4文件格式筛选

函数原型:tuple_regexp_select( : : Data, Expression : Selection)
参数
Data:被选择的文件路径数组
Expression:文件格式的筛选规则

//. 转义 .
(bmp|JPG) 筛选的文件格式
‘ignore_case’ 忽略大小写
Selection:选择出的文件路径数组

示例

   1: * 遍历文件夹E:/halcon/study
   2: list_files ('D:/halcon/study', ['files','follow_links'], ImageFiles)
   3:  
   4: * 来筛选bmp或jpg格式的文件
   5: tuple_regexp_select (ImageFiles, ['\\.(bmp|jpg)$','ignore_case'], ImageFiles)
   6:  
   7: * 依次读取图片
   8: for Index := 0 to |ImageFiles| - 1 by 1
   9:     read_image (Image, ImageFiles[Index])
  10:     
  11: endfor
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&Mr.Gong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值