Import or Export a Sequence of Files

1 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2021-2-27
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 2021-2-27
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

请先登录,再进行评论。

采纳的回答

Cris LaPierre
Cris LaPierre 2021-2-27
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 个评论
Stephen23
Stephen23 2021-3-18
编辑:Stephen23 2021-3-18
@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 2021-3-18
@Stephen Cobeldick... this worked perfectly.
I really appreciate for your help. Thanks a lot.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by