how do i sort images into a list in ascening order

9 Ansichten (letzte 30 Tage)
alex
alex am 19 Feb. 2014
Bearbeitet: Stephen23 am 18 Apr. 2021
Hello!
I have these images in the file.
1.bmp , 2.bmp , ..... , 1000.bmp
i use this command: list = dir('*.bmp');
and the results are
list(1)= '1.bmp' , list(2)='10.bmp' , list(3)='11.bmp', list(4)='12.bmp', list(5)='13.bmp',... .....,list(995)='2.bmp',...
What can i do to put them into the list in ascending order??
list(1)='1.bmp' , list(2)='2.bmp' .....
Thank you very much.
  3 Kommentare
Nav Desh
Nav Desh am 18 Jul. 2017
gives error:Undefined function or variable 'natsortfiles'. any help?
Stephen23
Stephen23 am 18 Jul. 2017
Bearbeitet: Stephen23 am 18 Apr. 2021
@Nav Desh: go to my FEX submission natsortfiles. Click on the big blue button labeled Download (top right-hand corner). Unzip the zip file into your current directory. Enjoy!
>> 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'

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 19 Feb. 2014
  3 Kommentare
alex
alex am 19 Feb. 2014
Bearbeitet: alex am 19 Feb. 2014
C =
1.bmp10.bmp11.bmp12.bmp
>> [S,INDEX] = sort_nat(C)
Cell contents reference from a non-cell array object.
Error in sort_nat (line 62)
num_val(i,z(i,:)) = sscanf(sprintf('%s ',digruns{i}{:}),'%f');
alex
alex am 19 Feb. 2014
ok found it
list = dir('*.bmp'); C={list.name} sort_nat(C)
thank you very much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jorge Lopez
Jorge Lopez am 3 Dez. 2015
clear all
clc
Directorio = 'Ruta de guardado de frames';
Frames = dir(fullfile(Directorio, '*.extension'));
Nombres={Frames.name};
[~,name]=sort_nat(Nombres);
%sort_nat es una funcion que se debe descargar y guardar en el mismo directorio donde se ejecuta el programa esta funcion ordena alfanumericamente las palabras incluyendo caracteres especiales.
new_folder=Frames(name);
NumFrames = numel(Frames);
VideoRecuperado = VideoWriter('StegoVideo.mp4','MPEG-4');
VideoRecuperado.FrameRate = FramesRate deseado;
VideoRecuperado.Quality = 80;
open(VideoRecuperado);
for n = 1:NumFrames
full_name= fullfile(Directorio, new_folder(n).name);
I=imread(full_name);
writeVideo(VideoRecuperado, I);
end
close(VideoRecuperado);

Kategorien

Mehr zu Display Image finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by