The directory of simulation

2 次查看(过去 30 天)
I am using this code to get all images in a folder by user:
d = uigetdir(pwd, D);
imagefiles = dir(fullfile(d, '*.jpg'));
nfiles = length(imagefiles);
Then in a for loop I will do some calculations on the images:
k = 1:nfiles
currentfilename = imagefiles(k).name;
I = imread(currentfilename);
.
.
.
when running the code I get this error:
Error using imread>get_full_filename (line 568)
File "1.jpg" does not exist.
Error in imread (line 377)
fullname = get_full_filename(filename);
Error in DemoBoundary29sept2018edit3ReadsImagesfromfolder (line 30)
I = imread(currentfilename)
But 1.jpg exists in that folder. I think the reason is that the folder that the code is saved is different from folder that the images are.
Any idea how to solve the issue?

采纳的回答

Walter Roberson
Walter Roberson 2019-11-2
编辑:Walter Roberson 2019-11-2
currentfilename = fullfile(d, imagefiles(k).name);
The .name field returned by dir() never includes folder information: it is the basic file name (including extension) only.
Since R2015b or so, there is also a .folder field, so
currentfilename = fullfile(imagefiles(k).folder, imagefiles(k).name);
could be used. That is useful if you used wildcards in folder specifications.
I find it easier to attach the folder names before-hand:
filenames = fullfile(d, {imagefiles.name});
and then extract filenames{k} and use that.

更多回答(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