52 個のサブフォルダー (person1 から person52) を含むフォルダー (new_images) があり、各サブフォルダーには連続していない 50 個の画像 (person1 1、person1 3、person1 10 など) が含まれます。これらの各サブフォルダーから画像を読み取り、処理を実行したいのですが、どうすればよいですか?
私は本当にあなたの答えをいただければ幸いです
52 個のサブフォルダー (person1 から person52) を含むフォルダー (new_images) があり、各サブフォルダーには連続していない 50 個の画像 (person1 1、person1 3、person1 10 など) が含まれます。これらの各サブフォルダーから画像を読み取り、処理を実行したいのですが、どうすればよいですか?
私は本当にあなたの答えをいただければ幸いです
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 のヘルプを読むことを躊躇しないでください。