How to read images from one directory into variables using loop?

I am new in Matlab. I want to read all images from a directory and store each of them into separate variables. For example, if there are 225 images then i should have 225 variables, each of them containing pixel values of corresponding image, no matter same name as image or different.

 Accepted Answer

More Answers (1)

You don't want numbered variables. Try a cell array instead. That way you can much more easily loop through your images to do the further processing.

6 Comments

Can you please provide me a sample?
list=dir('*.png');
IMlist=cell(size(list));
for n=1:numel(list)
IMlist{n}=imread(list(n).name);
end
I actually want to store all the images in each variables. My program would read each JPG image from my directory, binarize it using Binarize function and then store that image into one variable. The same will happen for all images there.
There is no reason to store your images in separate variables. Why do you think you need that?
I need the ratio of black pixels to other pixels for every image, so I am trying to store all the black pixels of each image into a separate variable.
You are much better off just processing the images in a loop without storing the intermediate steps. You could also consider a struct array with a field for the file name and a field with the property of interest (and you could even add a field with the image itself).

Sign in to comment.

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!