1

52 個のサブフォルダー (person1 から person52) を含むフォルダー (new_images) があり、各サブフォルダーには連続していない 50 個の画像 (person1 1、person1 3、person1 10 など) が含まれます。これらの各サブフォルダーから画像を読み取り、処理を実行したいのですが、どうすればよいですか?

私は本当にあなたの答えをいただければ幸いです

4

1 に答える 1

0

Matlabimread関数を使用して画像を読み込むことができます。

私はそれを行うための簡単な方法を考えています:

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 = pwd;new_images_rep = 'the_actual_full_path'.

'fmt'保存したい画像の実際の形式です(.tifまたは.jpgその他のものなど)。

私が提供したコード (およびいくつかの変更) を使用すると、最初のサブフォルダーのすべてのファイルがa(1,:). ここで使用されているすべての関数について、Matlab のヘルプを読むことを躊躇しないでください。

于 2013-06-28T09:27:14.807 に答える