How use imread in a loop

6 vues (au cours des 30 derniers jours)
Yunwei
Yunwei le 23 Fév 2023
Commenté : DGM le 23 Fév 2023
Hello everyone,
i am trying to use imread to read multiple images in a for loop.
path='Z:\collect_data';
for t=1:length(nan_rows)
image_test=imread([path,'nan_rows' (t)]);
%further coding
end
the 'nan_rows' here is a string array.
I want to read the images which the file names are stored in the array.
Does anyone know how to do it?
Thanks a lot in advance!

Réponse acceptée

VBBV
VBBV le 23 Fév 2023
Modifié(e) : VBBV le 23 Fév 2023
image_test{t}=imread([path,'nan_rows' num2str(t)])
  7 commentaires
DGM
DGM le 23 Fév 2023
According to the question, the filenames are in a string array, so I don't know why we're generating number suffixes at all. If we are to generate number suffixes, then we'd actually need to know how they're formatted.
% you have your base path
fprefix = fullfile(matlabroot,'toolbox','images','imdata');
% and you say you have a string array of filenames
fnames = ["cameraman.tif" "tire.tif" "coins.png" "strawberries.jpg"];
nfiles = numel(fnames);
image_test = cell(nfiles,1); % preallocate
for k = 1:nfiles
image_test{k} = imread(fullfile(fprefix,fnames(k)));
end
montage(image_test)
Build the path with fullfile(). If you have to programmatically construct the filename, using sprintf() is simpler and more readable imo.
Yunwei
Yunwei le 23 Fév 2023
That's exactly what l need.
Thank you so much for your help!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by