matlab 遍歷兩層資料夾,對兩層資料夾進行改變圖片大小處理【轉載】
阿新 • • 發佈:2019-01-03
<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:
- %圖片路徑
- 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,如果只是涉及到一個資料夾內的圖片大小處理,有個非常簡單的方法,你首先需要一個看圖工具,現在基本上所有看圖工具都有批量轉換尺寸的功能
點選批量改尺寸後
根據自己的需求修改即可
</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:
- %圖片路徑
- 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,如果只是涉及到一個資料夾內的圖片大小處理,有個非常簡單的方法,你首先需要一個看圖工具,現在基本上所有看圖工具都有批量轉換尺寸的功能
點選批量改尺寸後
根據自己的需求修改即可
</div>
</div>