Matlab影象處理常用語句(1)--批量讀取資料夾內影象
阿新 • • 發佈:2019-01-08
程式設計過程中發現有好多語句都比較常用,然而有時候會突然忘記怎麼用,所以還是要記下來,如有何不妥,還請多多指教。
批量讀取資料夾內影象
單個資料夾讀取
% 選擇資料夾
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