how to segment the infected cancer cells in human eye ?

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

I guess that I am not the person who will answer this question, but it would help if you could provide a series (5?) of images if you have them at hand.
In the image that you provided, are the little brown spots above and on the right of the big brown area also cancerous cells which must be detected/measured?
Dear Cedric, I've uploaded 6 ocular melanoma images in below link.
In all the images, it is to be noted that the location, size and shape of tumor cells is not at a constant place. From these images, based on the size of cancer cells, the stages of tumor is calculated for diagnosis. My task is to segment the tumor cells alone separately ( if more than one tumor cell present like the small brown spots in addition to large cancer cell ( previously uploaded image) then the larger area is considered for calculation leaving the smaller ones. Because in this case, cancer is already present(bigger infected portion) and it is just spreading across the entire eye( small brown spots).
Malini
Link is broken. There are no 6 images, just a login screen.
could you please check the below link for images. http://imageshack.us/v_images.php
Thanks for using ImageShack!
You must be logged in to see the images. Please click the button below to login. New user? Sign up and start uploading your images and videos!
I've uploaded the images in new link. Kindly request you to view the images from below link.
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
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)

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

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
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

Asked:

on 5 Oct 2013

Edited:

on 21 Dec 2016

Community Treasure Hunt

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

Start Hunting!