How to count the number of pixels in each section of an image set?

12 views (last 30 days)
Hello:)
I have a set of 80 dicom images of lungs and I was wondering if there is an automatic way or a simple way to count the number of pixels belonging to the lung in each section.
Could anyone help me?
I've searched everywhere and I can't find a way to calculate the pixels of each image at the same time, I only got the total number of pixels in the set but thats not what i wanted..
Any kind of help is welcome.
Thank you :)
  4 Comments

Sign in to comment.

Accepted Answer

Matt J
Matt J on 12 May 2022
A = imread('toyobjects.png');
A = A<100 | A>150; % some binary image
% get total number of pixels across all objects
pixtotal = regionprops('table',A,'Area')
pixtotal = 4×1 table
Area _____ 10871 11922 8797 1644
  7 Comments

Sign in to comment.

More Answers (1)

DGM
DGM on 11 May 2022
Edited: DGM on 11 May 2022
Depending on what your images are like and what you need, this may be a start. You can calculate the number of true (nonzero) pixels in an image using nnz(). If your image has more than one object, then it will include them all. If you have more than one object and you want the pixel count for each object, you can do that using bwconncomp()
A = imread('toyobjects.png');
A = A<100 | A>150; % some binary image
imshow(A)
% get total number of pixels across all objects
pixtotal = nnz(A)
pixtotal = 33234
% get number of pixels in each object
CC = bwconncomp(A);
pixperobj = cellfun(@numel,CC.PixelIdxList)
pixperobj = 1×4
10871 11922 8797 1644
  1 Comment
Gabriela Almeida
Gabriela Almeida on 12 May 2022
@DGM Thanks for the help but I think something is not right because the number of pixels is increasing with the number of images but there are images where the lung part decreases and the number of pixels increases.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by