Double loop over images
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
george korris
el 28 de Abr. de 2021
Comentada: george korris
el 10 de Mayo de 2021
Hi guys! So i have this question: is there a way to double loop a lot of images?
What i mean is that i know how to loop over a lot of images (of the same type for example .png) lets say i have the next 10 images with names: c1=10.2 , c2=10.2 up to c10=10.2 with the next lines of code i can read them all and do what i want next with them
for n=1:10
images{n} = imread(sprintf('c%d=10.2.png',n));
%code ....
end
but if i lets say want to loop over this for loop and have lets say a code that for the numbers 10 30 50 70 and 100 reads firstly the images with names c1=10.2 up to c10=10.2 and then does the previous for loop and when that for loop is done does the same thing for the c1=30.2 up to c10=30.2 and then for 50 and then 70 and then finally for 100 c1=100.2 up to c10=100.2 .
so it will read
c1=10.2 .... c10=10.2 and then read all the images c1=30.2 up to c10=30.2 and then c1=50.2 up to c10=50.2 and then c1=70.2 ... c10=70.2 and finally c1=100.2 .... c10=100.2
I hope i expained it well !
5 comentarios
Jan
el 28 de Abr. de 2021
Just try it:
for m=10:20:70
for n=1:10
sprintf('c%d=%d.2.png',n,m)
end
end
Respuesta aceptada
Image Analyst
el 28 de Abr. de 2021
Try this:
folder = pwd;
% Now we have a list of all the filenames.
% Now how another loop that reads in one image with names like 10, 30, 50, ...
% and an inner loop that does 1-10.
outLoopValues = [10, 30, 50, 70, 100] % Whatever values you want.
for k = 1 : length(outLoopValues)
index = outLoopValues(k);
for n = 1 : 10
thisBaseFileName = sprintf('c%d=%d.2.png', n, index);
thisFileName = fullfile(folder, thisBaseFileName);
if isfile(thisFileName)
fprintf('Processing "%s"\n', thisFileName);
% Code to call imread and process this image ...
else
% File doesn't exist.
fprintf(' !!!! Skipping non-existent file: "%s"\n', thisFileName);
continue;
end
end
fprintf('\n'); % Print blank line between groups.
end
fprintf('Done running %s.m\n', mfilename);
3 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Image Processing and Computer Vision en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!