有些事情,或早或晚,该经历的总归要面对。虽然一直不想写批处理函数来处理实验,但是批处理的优越性还是在完成编程的那一刻解放了双手,狠狠打了自己一巴掌,真好用。可能我只是懒,或许也不愿动脑子。言归正传,在这篇博文中,编写一个普适性的批处理的框架,为老年人记忆力差留一份保障以供日后查询。
由于并无多少可讲解的东西,我们直接贴出代码。需要注意的是,批处理对应的文件夹下的文件命名是遵守某种规范的,即有种规律。
批处理代码
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% % 该函数主要为了
% % 批量读取文件下的图像然后做某种实验,并且将实验结果记录到txt文件
% %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
clc;
clear;
close all;
files_path = './images/'; % 图像文件夹路径
img_path_list = dir(strcat(files_path,'*.tif')); % 获取文件夹下所有.tif后缀的文件构成的struct
img_num = length(img_path_list); % 获得文件夹下图像的个数
% 使用result.txt记录实验数据
filename = './result.txt';
if exist(filename,'file')
delete(filename);
end
if img_num >0
for index = 1:img_num
gt_name = img_path_list(index).name;% 获取图像文件名
% 1)形成完整路径
gt_name = fullfile(files_path,gt_name);
% 2)读取图像
gt = im2double( imread(gt_name));
% 3)图像进行操作
这里写对文件夹内的图像进行何种操作
% 4)保存实验结果(按需求添加)
fid = fopen(filename,'a+');
fprintf(fid,'var=%format');
fprintf(fid,['===========第',num2str(index),'幅图像===========\n']);
end % for
end % if
state = fclose(fid); % 关闭文件,要不然删除会提示不可删除文件