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 );

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。