今天被师兄问到如何利用matlab批处理图片,觉得很简单嘛
就让他去百度 结果只百度到处理文件夹中图片的程序
好吧 这里放上如何处理文件夹中子文件夹的图片
现状:在一个名为casia的文件夹中,里面有很多子文件夹,每个子文件夹均以人名为文件件名,每个子文件夹中有一定数量的图片,如图所示
casia文件夹图示:
casia文件夹中 子文件夹图示:
目的:将casia文件夹中->每个子文件夹中的图片进行修改大小处理
code:
%图片路径
src='D:\casia';
%存取路径
des='D:\resize-casia';
pathlist1=dir(src);
filenum1=length(pathlist1);
filenamelist1={pathlist1.name};
%由于得到的filenamelist第一个是.第二个是..第三个才是文件夹名,
%故i从3开始
for i=3:filenum1
%做一次嵌套,目的是读取子文件夹中的图片
imgsrcpath=[src,'\',filenamelist1{i}];
imgdespath=[des,'\',filenamelist1{i}];
pathlist2=dir(imgsrcpath);
filenum2=length(pathlist2);
filenamelist2={pathlist2.name};
for j=3:filenum2
imgsrcpath1=[imgsrcpath,'\',filenamelist2{j}];
imgdespath1=[imgdespath,'\',filenamelist2{j}];
imgsrc=imread(imgsrcpath1);
%imgdes=imresize(imgsrc,[160,160],'bilinear');
imgdes=imresize(imgsrc,[160,160]);
imwrite(imgdes,imgdespath1);
end
%这个i用来看处理到第几个文件夹了
i
end
以上,即可完成处理
其实,关于图片大小的resize,如果只是涉及到一个文件夹内的图片大小处理,有个非常简单的方法,你首先需要一个看图工具,现在基本上所有看图工具都有批量转换尺寸的功能
点击批量改尺寸后
根据自己的需求修改即可