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

bloodcell extractioncolor segmentationImage Processing Toolboxred

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?

Best Answer

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.