matlab 遍历两层文件夹,对两层文件夹进行改变图片大小处理【转载】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangkun1340378/article/details/72842620
                                        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e2445db1a8.css">
                    <div class="htmledit_views">

今天被师兄问到如何利用matlab批处理图片,觉得很简单嘛

就让他去百度 结果只百度到处理文件夹中图片的程序

好吧 这里放上如何处理文件夹中子文件夹的图片



现状:在一个名为casia的文件夹中,里面有很多子文件夹,每个子文件夹均以人名为文件件名,每个子文件夹中有一定数量的图片,如图所示

casia文件夹图示:



casia文件夹中 子文件夹图示:



目的:将casia文件夹中->每个子文件夹中的图片进行修改大小处理

code:


   
   
  1. %图片路径
  2. src='D:\casia';
  3. %存取路径
  4. des='D:\resize-casia';
  5. pathlist1=dir(src);
  6. filenum1=length(pathlist1);
  7. filenamelist1={pathlist1.name};
  8. %由于得到的filenamelist第一个是.第二个是..第三个才是文件夹名,
  9. %故i从3开始
  10. for i=3:filenum1
  11. %做一次嵌套,目的是读取子文件夹中的图片
  12. imgsrcpath=[src,'\',filenamelist1{i}];
  13. imgdespath=[des,'\',filenamelist1{i}];
  14. pathlist2=dir(imgsrcpath);
  15. filenum2=length(pathlist2);
  16. filenamelist2={pathlist2.name};
  17. for j=3:filenum2
  18. imgsrcpath1=[imgsrcpath,'\',filenamelist2{j}];
  19. imgdespath1=[imgdespath,'\',filenamelist2{j}];
  20. imgsrc=imread(imgsrcpath1);
  21. %imgdes=imresize(imgsrc,[160,160],'bilinear');
  22. imgdes=imresize(imgsrc,[160,160]);
  23. imwrite(imgdes,imgdespath1);
  24. end
  25. %这个i用来看处理到第几个文件夹了
  26. i
  27. end

以上,即可完成处理



其实,关于图片大小的resize,如果只是涉及到一个文件夹内的图片大小处理,有个非常简单的方法,你首先需要一个看图工具,现在基本上所有看图工具都有批量转换尺寸的功能


点击批量改尺寸后


根据自己的需求修改即可

        </div>
            </div>
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangkun1340378/article/details/72842620
                                        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e2445db1a8.css">
                    <div class="htmledit_views">

今天被师兄问到如何利用matlab批处理图片,觉得很简单嘛

就让他去百度 结果只百度到处理文件夹中图片的程序

好吧 这里放上如何处理文件夹中子文件夹的图片



现状:在一个名为casia的文件夹中,里面有很多子文件夹,每个子文件夹均以人名为文件件名,每个子文件夹中有一定数量的图片,如图所示

casia文件夹图示:



casia文件夹中 子文件夹图示:



目的:将casia文件夹中->每个子文件夹中的图片进行修改大小处理

code:


 
 
  1. %图片路径
  2. src='D:\casia';
  3. %存取路径
  4. des='D:\resize-casia';
  5. pathlist1=dir(src);
  6. filenum1=length(pathlist1);
  7. filenamelist1={pathlist1.name};
  8. %由于得到的filenamelist第一个是.第二个是..第三个才是文件夹名,
  9. %故i从3开始
  10. for i=3:filenum1
  11. %做一次嵌套,目的是读取子文件夹中的图片
  12. imgsrcpath=[src,'\',filenamelist1{i}];
  13. imgdespath=[des,'\',filenamelist1{i}];
  14. pathlist2=dir(imgsrcpath);
  15. filenum2=length(pathlist2);
  16. filenamelist2={pathlist2.name};
  17. for j=3:filenum2
  18. imgsrcpath1=[imgsrcpath,'\',filenamelist2{j}];
  19. imgdespath1=[imgdespath,'\',filenamelist2{j}];
  20. imgsrc=imread(imgsrcpath1);
  21. %imgdes=imresize(imgsrc,[160,160],'bilinear');
  22. imgdes=imresize(imgsrc,[160,160]);
  23. imwrite(imgdes,imgdespath1);
  24. end
  25. %这个i用来看处理到第几个文件夹了
  26. i
  27. end

以上,即可完成处理



其实,关于图片大小的resize,如果只是涉及到一个文件夹内的图片大小处理,有个非常简单的方法,你首先需要一个看图工具,现在基本上所有看图工具都有批量转换尺寸的功能


点击批量改尺寸后


根据自己的需求修改即可

        </div>
            </div>

猜你喜欢

转载自blog.csdn.net/qq_41615583/article/details/82380760
今日推荐