Calculating black pixels in colour image

Hi, does anyone know how do I calculate black pixels in a colour image using Matlab? Thank you.

 Accepted Answer

Find pixels that are black in all three color channels. One way to do it is:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1) == 0;
greenChannel = rgbImage(:, :, 2) == 0;
blueChannel = rgbImage(:, :, 3) == 0;
blackPixelImage = redChannel & greenChannel & blueChannel;
numBlackPixels = sum(blackPixelImage(:));
message = sprintf('The number of pure black pixels = %d', numBlackPixels);
uiwait(helpdlg(message));

4 Comments

Thank you. But where is the line to add in my own picture in order to calculate it?
I called your image rgbImage. What did you call it? In the line below:
rgbImage = imread(yourFileName);
what is the variable name you used instead of "rgbImage"? Whatever it is, that's what you'd use in my code.
By the way, you can also use the sum() function
blackPixelImage = sum(rgbImage, 3) == 0;
numBlackPixels = sum(blackPixelImage(:));
message = sprintf('The number of pure black pixels = %d', numBlackPixels);
uiwait(helpdlg(message));
You're welcome. If we're done here, can you mark the Answer as Accepted. Thanks in advance.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!