Matlab: чтение изображений из папки не возвращает имена файлов по порядку

Я читаю jpg файлов из папки. Мой код выглядит следующим образом:

inputImg= dir('C:\Documents and Settings\Administrator\Desktop\TestImages\*.jpg');
inputDir = 'C:\Documents and Settings\Administrator\Desktop\TestImages\';
inputN = {inputImg.name};

for i = 1:numel(dstNFiles)

    dstFileName = dstImageFiles(i).name;
    dstName = strcat(dstDir,dstFileName);
    image = imread(dstName);
    %% do some work here
end

Все эти jpg изображения в моей папке названы по порядку "01.jpg, 02.jpg,...200.jpg". Но я обнаружил, что он не читает эти файлы по порядку. Я попытался напечатать dstFileName, и он дает совершенно случайные упорядоченные имена файлов, например:

01.jpg, 02.jpg, 03.jpg, 04.jpg,05.jpg,06.jpg,07.jpg,08.jpg,09.jpg,10.jpg,100.jpg,101.jpg,11.jpg, ... 199.jpg,200.jpg, 24.jpg,25.jpg,...

Как я мог это решить? Спасибо.


person E_learner    schedule 20.06.2013    source источник


Ответы (1)


Список файлов в правильном алфавитном порядке!

Рассмотрите возможность использования отступов при сохранении.

Т.е. сохранить 10.jpg как 0010.jpg

Если вы не можете изменить имя файла, вы должны написать свою собственную функцию упорядочения.

person Stefano Altieri    schedule 20.06.2013