How use imread in a loop

7 visualizzazioni (ultimi 30 giorni)
Yunwei
Yunwei il 23 Feb 2023
Commentato: DGM il 23 Feb 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!

Risposta accettata

VBBV
VBBV il 23 Feb 2023
Modificato: VBBV il 23 Feb 2023
image_test{t}=imread([path,'nan_rows' num2str(t)])
  7 Commenti
DGM
DGM il 23 Feb 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 il 23 Feb 2023
That's exactly what l need.
Thank you so much for your help!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by