将批量图片转换并保存为mat文件

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

猜你喜欢

转载自blog.csdn.net/m0_46366547/article/details/129786168