i am doing work on detection of malarial parasite. red blood cell extraction is the part of this project.

1 view (last 30 days)
i am doing work on detection of malarial parasite. red blood cell extraction is the part of this project. description is that
where g(m,n) is m rows by n columns 24 bit color image obtained after RBC extraction, x(m,n,l) is the 8 bit red color plane in x(m,n), x(m,n,2) is the 8 bit green color plane in x(m,n), x(m,n,3) is the 8 bit blue color plane in x(m,n), can anyone convert it into matlab code?

Accepted Answer

Image Analyst
Image Analyst on 2 Feb 2016
Try this:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
redMask = redChannel >= 170;
greenMask = greenChannel >= 150 & greenChannel <= 201;
blueMask = blueChannel >= 160 & blueChannel <= 220;
mask = redMask & greenMask & blueMask;
% Mask channels
redChannel(~mask) = 255;
greenChannel(~mask) = 255;
blueChannel(~mask) = 255;
% Recombine separate masked color channels into a single, true color RGB image.
maskedRgbImage = cat(3, redChannel, greenChannel, blueChannel);
% maskedRgbImage is what the paper calls "g"
This code won't work unless your color gamut is the same as what they have. In other words if the color temperature (white balance) of your lighting and the exposure (brightness) don't match their values, then you'd need to use different threshold numbers. I usually don't like color segmentation in RGB space because of those reasons, unless you know that you will have very reproducible/stable lighting and subject.
  3 Comments
sana saleeme
sana saleeme on 17 Feb 2016
image analyst can i perform same code for these values attached in this image. i want to do this for extraction of color intensity range.

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!