1. 程式人生 > >matlab 遍歷兩層資料夾,對兩層資料夾進行改變圖片大小處理【轉載】

matlab 遍歷兩層資料夾,對兩層資料夾進行改變圖片大小處理【轉載】

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