1. 程式人生 > >Matlab影象處理常用語句(1)--批量讀取資料夾內影象

Matlab影象處理常用語句(1)--批量讀取資料夾內影象

程式設計過程中發現有好多語句都比較常用,然而有時候會突然忘記怎麼用,所以還是要記下來,如有何不妥,還請多多指教。

批量讀取資料夾內影象

單個資料夾讀取

% 選擇資料夾
folder_name_all = uigetdir('\input\');  

% 獲取該資料夾中所有png格式的影象  
img_path_list = dir(strcat(folder_name_all,'\','*.png'));  

 % 獲取影象總數量  
img_num = length(img_path_list);   

% 逐一讀取影象 
 for i = 1:img_num
     image_name = img_path_list(i
).name; % 影象名 Vol(:,:,i) = imread(strcat(folder_name_all,'\',image_name)); end

多個資料夾讀取

p = genpath('\input\');  
% 這些路徑存在字串p中,以';'分割   
length_p = size(p,2);  
%字串p的長度  
% 建立一個單元陣列,陣列的每個單元中包含一個目錄  
path = {};   
temp = [];

%尋找分割符';',一旦找到,則將路徑temp寫入path陣列中

for k = 1:length_p 
    if p(k) ~= '
;' temp = [temp p(k)]; else temp = [temp '\']; path = [path ; temp]; temp = []; end end clear p length_p temp; %至此獲得data資料夾及其所有子資料夾的路徑,存於陣列path中。 file_num = size(path,1); % 子資料夾的個數 for i = 1:file_num file_path = path{i}; % 第i個資料夾路徑 img_path_list=dir(strcat(file_path,'
*.png')); img_num = length(img_path_list); for j = 1:img_num image_name = img_path_list(j).name; image{j,1}=imread(strcat(file_path,image_name)); end end