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

 Akzeptierte Antwort

Image Analyst
Image Analyst am 12 Apr. 2015

0 Stimmen

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 Kommentare

Hui Shi Lim
Hui Shi Lim am 12 Apr. 2015
Thank you. But where is the line to add in my own picture in order to calculate it?
Image Analyst
Image Analyst am 12 Apr. 2015
Bearbeitet: Image Analyst am 12 Apr. 2015
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));
Hui Shi Lim
Hui Shi Lim am 12 Apr. 2015
Thank you:)
Image Analyst
Image Analyst am 12 Apr. 2015
You're welcome. If we're done here, can you mark the Answer as Accepted. Thanks in advance.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by