Reading Multiple Images from Folder
Afficher commentaires plus anciens
I have a folder named 'ImageSet1',it consist of 20 images named as a 1.jpg,2.jpg...20.jpg.
Here i want to read images from 1 to 10 and then from 11 to 20 separately. it means, when i read image 1,immediately i have to read 11th image and when i read image 2,immediately i have to read 12th image in a loop and so on.. Here is the my code
sdirectory = 'ImageSet1';
jpegfiles = dir([sdirectory '/*.jpg']);
for k = 1:length(jpegfiles)/2
filename = [sdirectory '/' jpegfiles(k).name];
I = imread(filename);
figure;imshow(I)
filename1=[sdirectory '/' jpegfiles(10+k).name];
I1=imread(filename1);
figure;imshow(I1)
end
This code is not reading in order,like 1 and 11th image,2 and 12th image...
Does any one know please correct this code or any other method..?
2 commentaires
It sorts according to any numeric values in the strings, and also sorts the file extensions separately:
B = {'test2.m'; 'test10-old.m'; 'test.m'; 'test10.m'; 'test1.m'};
sort(B) % wrong numeric order!
ans = {
'test.m'
'test1.m'
'test10-old.m'
'test10.m'
'test2.m'}
natsortfiles(B) % correct numeric order and shortest first:
ans = {
'test.m'
'test1.m'
'test2.m'
'test10.m'
'test10-old.m'}
>> S = dir('*.txt');
>> S.name
ans =
'1.txt'
ans =
'10.txt'
ans =
'2.txt'
>> S = natsortfiles(S); % alphanumeric sort by filename
>> S.name
ans =
'1.txt'
ans =
'2.txt'
ans =
'10.txt'
Réponses (2)
Use natural sorting for image filenames.
Listing = dir(fullfile(directoryPath, '*.jpg'));
names = {Listing.name}';
names = sort_nat(names);
fullNames = cellfun(@(x) fullfile(directoryPath, x), names, 'UniformOutput', 0);
azizullah khan
le 29 Nov 2013
0 votes
dear sir kindly explain me names={listing.name} what does it means
1 commentaire
Catégories
En savoir plus sur Image Preview and Device Configuration dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!