how to segment the infected cancer cells in human eye ?

1 view (last 30 days)
Dear Sir,
I'm doing my research in content based image retrieval and working on medical applications(ocular melanoma - eye cancer). As part of my research work, i've to segment the cancer cells present in eye and based on the shape of cancer cells i've to do the retrieval. ( The need for shape feature, is that based on size and shape, the cancer stages can be identified). Please find the sample image in below link.
In the uploaded human eye , the dark pigmented portion in iris is the cancer cells whose shape need to be segmented and it's area need to be calculated. I honestly look for your help in segmenting the cancer cells from human eye.(Note : the location of cancer cells in eye is not constant and their shape and size also varies from one person to another). I've extracted the color and texture features of cancerous melanoma in human eye but i'm really struggling to get the shape feature :(. Kindly request your help and guidance here.
Thanks,
Malini
  8 Comments
Malini
Malini on 6 Oct 2013
Edited: Walter Roberson on 21 Dec 2016
Dear Image Analyst,
In the above images , the texture of cancer cells alone could be kept as base for segmentation as they are hard and lumpy. Could you kindly let me know how to segment the cancer cells based on texture. I've used GLCM for texture feature extraction. But i'm stuck with texture based region segmentation. I request your help and guidance in texture based region segmentation for segmenting the cancer cells.
Malini
Image Analyst
Image Analyst on 6 Oct 2013
Is there some information in the link that you think points directly to your account on uploadhouse? Look at it.
Once you've located the iris, you might use bwconvhull() to make sure it's round. Or you might use imfindcircle(). You can use various texture filters like stdfilt() or entropyfilt() to find areas of high and low texture.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 5 Oct 2013
First find the white and then find the black and mask them out of the image. Shouldn't be too hard just look for pixels where the red, green, and blue signals are all high or are all low. Then, if all the cancers are the same rough color, do color segmentation for the brown color as I show in several demos in my File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
  2 Comments
Malini
Malini on 5 Oct 2013
Dear Image Analyst,
Could you please let me know how to mask white and black portions of eye. Yes, i could go for color segmentation but, the tumor cells vary in colors. Tumor cells are seen in white, grey, brown,black,red, pink, yellow or blue.
Malini
Image Analyst
Image Analyst on 6 Oct 2013
I can't spend tons of time consulting for you but here's something to give you a start:
% close all; % Close all figures (except those of imtool.)
% imtool close all; % Close all imtool figures if you have the Image Processing Toolbox.
% clear; % Erase all existing variables. Or clearvars if you want.
clc; % Clear the command window.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 35;
% Read in a standard MATLAB color demo image.
folder = 'C:\Users\Malini\Documents\Images';
baseFileName = 'atj9.jpg';
% Get the full filename, with path prepended.
fullFileName = fullfile(folder, baseFileName);
if ~exist(fullFileName, 'file')
% Didn't find it there. Check the search path for it.
fullFileName = baseFileName; % No path this time.
if ~exist(fullFileName, 'file')
% Still didn't find it. Alert user.
errorMessage = sprintf('Error: %s does not exist.', fullFileName);
uiwait(warndlg(errorMessage));
return;
end
end
rgbImage = imread(fullFileName);
% Get the dimensions of the image. numberOfColorBands should be = 3.
[rows, columns, numberOfColorBands] = size(rgbImage);
% Display the original color image.
subplot(2, 2, 1);
imshow(rgbImage);
title('Original Color Image', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% imtool(rgbImage);
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% [lowThresholdR highThreshold lastThresholdedBand] = threshold(83, 255, redChannel)
% [lowThresholdG highThreshold lastThresholdedBand] = threshold(83, 255, greenChannel)
% [lowThresholdB highThreshold lastThresholdedBand] = threshold(83, 255, blueChannel)
% Find iris.
binaryImage = redChannel < 173;
subplot(2, 2, 2);
imshow(binaryImage);
title('Binary Image', 'FontSize', fontSize);
% Clean it up to get the iris.
binaryImage = imclearborder(binaryImage);
% Fill holes.
binaryImage = imfill(binaryImage, 'holes');
irisBinaryImage = bwareaopen(binaryImage, 1000);
subplot(2, 2, 3);
imshow(irisBinaryImage);
title('Iris Binary Image', 'FontSize', fontSize);
% Now find pupil
pupilImage = redChannel < 60 & greenChannel < 60 & blueChannel < 60;
subplot(2, 2, 4);
imshow(pupilImage);
title('Pupil Binary Image', 'FontSize', fontSize);
% Next steps
% Pick the blob closest to the center of the iris by calling regionprops.
% Create combined mask = (irisBinaryImage & ~pupilBinaryImage)

Sign in to comment.

Categories

Find more on Biotech and Pharmaceutical in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!