0

MATLABでGLCMを試していましたが、画像を1つずつフィードする必要があり、永遠にかかります。大量の画像、たとえば 1,000 を GLCM にフィードできる方法はありますか? そのようなループを書く方法は?

4

1 に答える 1

1

体系的な命名スキーム (image1.jpg、image2.jpg、...) に従う n 個の画像がある場合、それは簡単です:

for k = 1 : n
    image = imread(strcat('image',num2str(k),'.jpg'));
    %do your GLCM analysis
end

それらの名前の形式が適切ではなく、すべてが同じフォルダーに保存されている場合は、次のようなものを使用してそれらを読み取る必要があります。

cd DIRECTORY_IMAGES_ARE_IN;
file_list = dir;
for k = 1 : n
    image = imread(file_list(k).name);
    %GLCM code
end

ファイルが他のものと混在するディレクトリにあり、適切な命名規則がない最悪のシナリオでは、いくつかのワイルドカードを使用してそれらを反復処理できます。dir検索するファイル名である単一の引数を取ることができます。ディレクトリ内のすべての jpeg 画像を反復処理する場合は、 を使用file_list = dir('*.jpg');します。分析するすべてのファイルのどこかに 'GCLM' が含まれている場合は、 を使用します。file_list = dir('*GCLM*');

于 2015-07-09T12:29:45.773 に答える