How to extract features from segmented skin cancer images

Hi all,
I have a data of melanoma images, I segmented them now I need to extract the following features from them :
1-Asymmetry feature 2-Color variation feature 3-Border feature 4-Diameter feature To use them in the ABCD rule for melanoma detection
Could anyone help me to do this job please? Or have a MATLAB code to calculate these features? Thanks in advance.

1 件のコメント

narayana reddy
narayana reddy 2015 年 12 月 24 日
which method is used for the segmentation accurately

サインインしてコメントする。

 採用された回答

hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日

0 投票

chulls = bwconvhull(seg_image_bw);
measurements = regionprops(chulls, 'Area', 'BoundingBox');
% Compute the areas of each convex hull:
allAreas = [measurements.Area];
% Compute the area of each bounding box.
boundingBoxes = [measurements .BoundingBox];
allBBAreas = boundingBoxes(3:4:end) .* boundingBoxes(4:4:end);

2 件のコメント

hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
Is the allAreas represent total image area? and allBBAreas represent the lesion area ?
Image Analyst
Image Analyst 2013 年 12 月 22 日
Please stop creating additional "Answers" to your question that aren't really answers at all. If you have a comment to something someone wrote, make it a comment.
allAreas is a list of all the areas. If there are 10 blobs in your segmentation, then it's a 10 element vector. If there is 1 area, then it's just a single number.

サインインしてコメントする。

その他の回答 (3 件)

Image Analyst
Image Analyst 2013 年 12 月 22 日

0 投票

There are a lot of algorithms here: http://iris.usc.edu/Vision-Notes/bibliography/medical899sk.html#Medical%20Applications%20--%20Skin%20Cancer,%20Melanoma,%20Skin%20Lesions Pick one and code it up. Once you've identified the cancer regions, you can do the ABCD measurements with standard image processing, like is shown in my Image Segmentation tutorial. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862

13 件のコメント

hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
編集済み: Image Analyst 2013 年 12 月 22 日
Image Analyst :
I attach a segmented image as an example:
Please could help me how to calculate the Asymmetry feature ?
Image Analyst
Image Analyst 2013 年 12 月 22 日
編集済み: Image Analyst 2013 年 12 月 22 日
First threshold to get the binary image. Then call bwboundaries() to get the x,y coordinates of the boundary. Then call regionprops() to find the centroid and find the distance from the centroid to each boundary coordinate and find the variation in that distance. You also might want to compute the circularity = perimeter^2 / (4*pi*area). I'm not sure of exactly how the medical field defines asymmetry. Can you tell me what formula they use?
hold on;
boundaries = bwboundaries(binaryImage);
numberOfBoundaries = size(boundaries, 1);
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), 'g', 'LineWidth', 2);
% Compute distances
xCentroid = measurements(k).Centroid(1);
YCentroid = measurements(k).Centroid(2);
distances = sqrt((thisBoundary(:,2)-xCentroid)^2 + (thisBoundary(:,1)-yCentroid)^2);
SDdistances(k) = std(distances);
end
hold off;
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
In the medical field the asymmetry is defined like this shown in the following Attached paper
Asymmetry Index =AD/A×100
Image Analyst
Image Analyst 2013 年 12 月 22 日
Looks like you need to find AD, so find the angle using their formula or regionprops(), and then call imrotate to level the image. Then do the XOR like they say.
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
This another paper(also attached) says: A= the total area of the image and DA=the difference area between the total area and lesion area now,how can I calculate the total area of the image and lesion area?
Image Analyst
Image Analyst 2013 年 12 月 22 日
Use regionprops to calculate the area, angle, and bounding box. Use imrotate to rotate so that the major axis is hirizontal. Then get the top half and bottom half of the image using regular indexing like I'm sure you know. Then use flipup and xor() to find the difference like they wanted you to. That's basically it step by step. You're a smart engineer so I think you can put that into code.
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
編集済み: hamed abdulaziz 2013 年 12 月 22 日
please I am new in Matlab could you explain it by matlab code on the segmented image already attached,thanks in advance
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
Image Analyst Thank you for good advice, I tried to calculate the area of total image by this piece of code (it is correct?)
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
But how can calculate the area of the lesion?
Image Analyst
Image Analyst 2013 年 12 月 22 日
編集済み: Image Analyst 2013 年 12 月 22 日
It was in the tutorial I originally told you to look at. Here, I extract the lines from the tutorial and show them here:
% Get all the blob properties. Can only pass in originalImage in version R2008a and later.
blobMeasurements = regionprops(labeledImage, originalImage, 'all');
allBlobAreas = [blobMeasurements.Area];
You must already have binaryImage, otherwise you would not have been able to show a masked image like you did above.
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
Thank you very much for your support,but I don understand what do mean by labeledImage?
hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日
Image Analyst
Image Analyst 2013 年 12 月 22 日
hamed said this in an "Answer" which I moved here because it was not an answer but was a comment:
bw=im2bw(seg_image);
STATS = regionprops(bw, 'Area','BoundingBox');

サインインしてコメントする。

hamed abdulaziz
hamed abdulaziz 2013 年 12 月 22 日

0 投票

attached file for asymmetry index calculation

カテゴリ

ヘルプ センター および File ExchangeBiotech and Pharmaceutical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by