Import or Export a Sequence of Files

4 Ansichten (letzte 30 Tage)
Luca Fenech
Luca Fenech am 27 Feb. 2021
Kommentiert: Luca Fenech am 18 Mär. 2021
I have been trying to export photos on MATLAB. With a.bmp, b.bmp and c.bmp works perfectly, but wrting *.bmp gives me an error. Could you help me out please.
Thanks
clc; clear all;
% paths = fullfile('c:\','users','fenec','Desktop','Cam_1',{'a.bmp'; 'b.bmp'; 'c.bmp'});
paths = dir(fullfile('c:\','users','fenec','Desktop','Cam_1','*.bmp'));
for R = 1:length(paths)
temp = char(paths(R));
I = imread(temp);
figure;
imshow(I, []);
end
  2 Kommentare
Stephen23
Stephen23 am 27 Feb. 2021
I don't see how this approach would ever work without error:
S = dir();
char(S(1))
Error using char
Conversion to char from struct is not possible.
Most likely you would be much better off just using the standard approach of using indexing and fieldname to access the structure content (just as they were designed for):
Luca Fenech
Luca Fenech am 27 Feb. 2021
Thats why I got confused. Since when uncommenting the 2nd line:
clc; clear all;
paths = fullfile('c:\','users','fenec','Desktop','Cam_1',{'a.bmp'; 'b.bmp'; 'c.bmp'});
% paths = dir(fullfile('c:\','users','fenec','Desktop','Cam_1','*.bmp'));
for R = 1:length(paths)
temp = char(paths(R));
I = imread(temp);
figure;
imshow(I, []);
end
Like the above code works perfectly.
The problem when came when I wanted to be more generic, by having
'*.bmp'
Thanks for link provided.
Moreover, the answer and explanation to this query can be found here:
https://www.mathworks.com/matlabcentral/answers/757974-import-or-export-a-sequence-of-files#answer_635024

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Cris LaPierre
Cris LaPierre am 27 Feb. 2021
Perhaps the issue is that paths is a structure containing several fields and not just the path. Look at the dir documentation page for more.
The fields are
  • name
  • folder
  • date
  • bytes
  • isdir
  • datenum
See explanations here.
Perhaps modify your code to be
for R = 1:length(paths)
temp = fullfile(paths(R).folder,paths(R).name);
I = imread(temp);
figure;
imshow(I, []);
end
  4 Kommentare
Stephen23
Stephen23 am 18 Mär. 2021
Bearbeitet: Stephen23 am 18 Mär. 2021
@Luca Fenech: download, unzip, and use NATSORTFILES (following its documentation of course):
For example:
P = fullfile('C:\','users','fenec','Desktop','Cam 1');
S = dir(fullfile(P,'*.bmp'));
C = natsortfiles({S.name}); % sort filenames alphanumerically.
for k = 1:numel(C)
F = fullfile(P,C{k});
I = imread(F);
figure;
imshow(I,[]);
end
You can also sort the structure S by using the second output from NATOSRTFILES, which is the sort index.
Luca Fenech
Luca Fenech am 18 Mär. 2021
@Stephen Cobeldick... this worked perfectly.
I really appreciate for your help. Thanks a lot.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by