2013-06-28 154 views
1

我有一個文件夾(new_images),其中包含52個子文件夾(person1到person52),每個子文件夾包含50個非順序圖像(如:person1 1,person1 3 ,person1 10)。我想從這些讀取的圖像從每個子文件夾中進行處理,我該怎麼做?從多個文件夾中讀取多個非順序圖像

我會很感激你的答案

+0

doc'dir()'。在這裏有很多解決方案。 – Oleg

回答

0

您可以使用MATLAB imread功能加載圖像。

我在想的一個快速的方法來做到這一點:

new_images_rep = pwd; 
for i=1:52 
    eval(srcat('pics = dir(new_images_rep','/person',num2str(i),')'); 
    for k=1:50 
     a(i,k) = imread(pics(k+2).name,'fmt'); %there is k+2 because the dir function also stores repositories like '.' or '..'. 
    end 
end 

你必須要小心的dir功能。您應該在new_images存儲庫中對其進行測試,以查看存儲在pics中的文件/存儲庫。

eval是一個Matlab函數,允許您執行任何Matlab表達式。通過strcat創建的字符串是在這裏(如果i=3):

'pics = dir(new_images_rep/person3)' 

要確保new_images倉庫是在你的Matlab的路徑,或者通過更換new_images_rep = 'the_actual_full_path'new_images_rep = pwd;

'fmt'是您想要存儲的圖像的實際格式(如.tif.jpg或其他)。

使用我給你的代碼(以及一些修改),第一個子文件夾中的所有文件將被存儲在a(1,:)中。不要猶豫,閱讀Matlab幫助,瞭解這裏使用的每個函數。

+0

謝謝@ChocoPouce – Olah

相關問題