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 のヘルプを読むことを躊躇しないでください。