首页 > 其他 > 详细

matlab实现一次性实现多个文件夹图片转化为.mat文件

时间:2018-08-18 13:45:44      阅读:457      评论:0      收藏:0      [点我收藏+]

%这里是主函数:命名为readImg.m;

clc;clear;
%---read_image;
filepath = G:\人脸重建\data\src_all\‘;%图片路径可以根据自己需要修改;
pic = *jpg;%图片格式,根据自己的图片格式进行修改;
database = build_database_src(filepath,pic);

%build_database_src.m子函数;

function database = build_database_src(rt_data_dir,suffix)
fprintf(
dir the database); subfolders = dir(rt_data_dir);
database
= []; database.imnum = 0; database.cname = {}; database.label = []; database.path = []; database.nclass = 0; label = 0; k = 1; src_x = []; src_y = []; for ii = 1 : length(subfolders) subname = subfolders(ii).name; if ~strcmp(subname,.) & ~strcmp(subname,..) database.nclass = database.nclass + 1; database.cname{database.nclass} = subname; frames = dir(fullfile(rt_data_dir,subname,suffix)); c_num = length(frames); database.imnum = database.imnum + c_num; database.label = [database.label;ones(c_num,1) * database.nclass]; label = numel(database.cname); for jj = 1 : c_num fprintf(folder : %d , num : %d \n,ii - 1,jj); kk1 = frames(jj).name;%显示具体图片名; c_path = fullfile(rt_data_dir,subname,frames(jj).name); database.path = [database.path,c_path]; img = imread(database.path);%读取图片; im = imresize(img,[64,64]);%设置图片大小; if(length(size(im)) == 3)%如果是彩色图进行灰度化(根据个人需要); gray = rgb2gray(im); else gray = im; end gray = double(gray) / 255;%对图片数据做归一化(根据个人需要); database.path = []; src_x(:,:,k) = gray;%存储图像数据; src_y(1,k) = label;%给数据加标签; k = k + 1; end end end %保存转化好的.mat文件; file = [src_x.mat]; save(file,src_x,-mat); file = [src_y.mat]; save(file,src_y,-mat); end

我的路径:G:\人脸重建\data\src_all。运行程序可以看到生成两个.mat文件。

参考:https://blog.csdn.net/yongjiankuang/article/details/72824081

matlab实现一次性实现多个文件夹图片转化为.mat文件

原文:https://www.cnblogs.com/Terrypython/p/9497075.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!