Matlab将批量图片转换成struct结构体,并保存为mat文件用于神经网络训练。
直接看代码:
%load('../mask/mask_20.mat') %导入相关路径
folder_path = 'BSDS300\images\train\' %图片所在文件夹位置,末尾'\'别丢了。
file_list = dir([folder_path '*.jpg']); %根据图片类型(jpg/png)修改
for i = 1:length(file_list)
% 读取图片
img = imread([folder_path file_list(i).name]);
%------图片处理操作,根据需要相应增改---------------
img = imresize(img,[256,256]); %裁剪成指定大小(256)
%img = rgb2gray(img); %彩色图转换成灰度图
%img= double(img); %更改成double类型
%-------------------------------------------------
train = (double(fft2(img))); %训练样本处理。(这里对图片做傅里叶变换,作为训练集)
label = double(img)/255; %标签。(这里将原始图片作为标签)
data = struct('train', train, 'label', label); %将训练样本和标签放到名为【data】的结构体中。
save([strcat(num2str(i),'.mat')], 'data'); %保存为mat文件放入当前文件夹。
end
最后效果:
有些时候需要实现data包含一个data字段,再把train和label存入data的字段中,可将上面这一段:
data = struct('train', train, 'label', label);
替换为下面即可。
data.data = struct('label', label,'train', train );