How to find the dark pixels in an image?

5 views (last 30 days)
Hello. I have a lot of images like this one:
From the whole shrimp, I would like to determine the area of dark pixels as a percentage of the visible surface. Does anybody have an idea how to do that? My idea is to first define/find the desired color and then filter the image for that defined color.
Thanks Falamanki

Accepted Answer

Bshara Murr
Bshara Murr on 28 Nov 2017
I = imread('shrimp.bmp');
N = I(:,:,3)>100;
I(:,:,2) = I(:,:,2)>100;
Where the second line treats each color channel separately, 3 represents the blue color, you can use 1 and 2 for red and green the 100 is the threshold that you can change as you with, you can use < as well, this gives you a bw image of the desired channel. the third line returns an rgb image but with a certain color channel thresholded but it will alter your white background as well.
  4 Comments
Bshara Murr
Bshara Murr on 28 Nov 2017
Aha okay. Did you find what you were looking for?
Al Falamanki
Al Falamanki on 28 Nov 2017
I am working on it, but so far, i think will get a satisfactory solution. Thanks !!

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 28 Nov 2017
You could try rgb2gray, then imbinarize using some brightness level you consider to be "dark", and count the number of 0 in the result.

Community Treasure Hunt

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

Start Hunting!