Info

This question is closed. Reopen it to edit or answer.

reading multiple imgaes from folder in a sequence

1 view (last 30 days)
Iram Shahzadi
Iram Shahzadi on 14 Nov 2018
Closed: MATLAB Answer Bot on 20 Aug 2021
I am using following code to read multiple images from a source folder, rotate them and save in target folder. However the images are not read in same sequence as they are in source folder. I want the images to be processed one by one in sequence from source folder. Can anyone please help me to identify the issue with this code.
folder = 'E:\Source folder\';
filePattern = fullfile(folder, '*.png');
myFiles = dir(filePattern);
for k = 1 : length(myFiles)
fullFileName = fullfile(myFiles(k).folder, myFiles(k).name);
imageArray = imread(fullFileName);
I1=(imageArray);
figure
imshow(I1);
I2=I1';
figure
imshow(I2);
Res='E:\target folder';
mkdir(Res);
baseFN= sprintf('%d.png',k);
fullFileName = fullfile(Res,baseFN)
imwrite(I2,fullFileName);
end

Answers (1)

KSSV
KSSV on 14 Nov 2018
Edited: KSSV on 14 Nov 2018
Have a look on this file exchange function: natsort
  1 Comment
Iram Shahzadi
Iram Shahzadi on 15 Nov 2018
folder = 'E:\Source folder\';
filePattern = fullfile(folder, '*.png');
myFiles = dir(filePattern);
myFiles = sort({myFiles.name});
for k = 1 : length(myFiles)
fullFileName = string(fullfile(folder, myFiles(k)));
imageArray = imread(fullFileName);
I1=(imageArray);
imshow(I1);
I2=I1';
imshow(I2);
Res='E:\target folder';
mkdir(Res);
baseFN= sprintf('%d.png',k);
fullFileName = fullfile(Res,baseFN);
imwrite(I2,fullFileName);
Thanks for help @KSSV. slight changes I made to above piece of code. Simply using 'sort' function of matlab can help to read image sequentially.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!