MATLAB: How to store the pixel information of each images in a folder into separate variables


I have a code that counts black pixels of a given image and stores that in a variable. I want to count and store black pixels from each images of a folder into separate variables.
I = imread('8.JPG');
bw = imbinarize(I);
figure; imshow(bw);
ctr= 0;
for i = 1:224
for j =1:224
if bw(i,j) ==0
ctr = ctr + 1;
How can I implement this code using loop for all the images in a directoy so thati can have a variable that contains numbers of black pixels of each image?

Best Answer

  • How about using save()?
    I = imread('8.JPG');
    bw = imbinarize(I);
    numBlackPixels = nnz(~bw);
    folder = 'c:/whereverYouWant';
    baseFileName = 'MyData.mat';
    fullFileName = fullfile(folder, baseFileName);
    save(fullFileName, 'numBlackPixels');
    No for loop is needed.
    Repeat for all your other images.
    See the FAQ for code samples to process a sequence of images: The FAQ