一、dir()函数和fullfile()函数
fullfile():用作文件目录的拼接,也可以用于保存文件或者图像名称命名的拼接
如file_list = fullfile(‘F:\imageSet\LIVE2’, ‘databaserelease2’, ‘refimgs’, ‘*.bmp’);
返回值就是一个完整的路径
file_list = ‘F:\imageSet\LIVE2\databaserelease2refimgs*.bmp’
dir():是直接确定到文件路径最后一级的文件名称
如file_list = dir(‘F:\imageSet\LIVE2\databaserelease2\refimgs*.bmp’);
返回值就是file_list=文件中所有的bmp文件。
二、批量处理压缩图片
代码如下:
function process_train_data(setname, sub_img_size, stride, quality)
data_dir = fullfile('F:\imageSet', 'ProcessedData', 'train');
if ~exist(data_dir, 'dir')
mkdir(data_dir);
end
savedir = 'C:\Users\Administrator\Desktop\imageSet\train';
file_list = dir(fullfile('F:\imageSet', 'BSDS500', 'data', 'images', setname, '*.jpg'));
for i = 1:length(file_list)
img = imread(fullfile('F:\imageSet', 'BSDS500', 'data', 'images', setname, file_list(i).name));
savedname = fullfile(savedir, [file_list(i), '_', num2str(quality), '.jpg']); %rename
imwrite(img, savedname, 'Quality', quality); %进行压缩,然后保存图像
end
end
function extract_data()
% train data
process_train_data('train', 32, 10, 10);
process_train_data('train', 32, 10, 20);
process_train_data('train', 32, 10, 30);
process_train_data('train', 32, 10, 40);
process_train_data('test', 32, 10, 10);
process_train_data('test', 32, 10, 20);
process_train_data('test', 32, 10, 30);
process_train_data('test', 32, 10, 40);
process_train_data('val', 32, 10, 10);
process_train_data('val', 32, 10, 20);
process_train_data('val', 32, 10, 30);
process_train_data('val', 32, 10, 40);
end