How can i find the diameter of a region?

Hi, I have a region of interest detected by a segmentation method. I want to find the diameter of this region in millimeter. How can i do this with matlab? This is the mask of the region
Thanks

4 Comments

i want code for find asymetry of an image and diameter of an image..
I discuss the diameter in my answer below. What is your definition of asymmetry? For example the Dice Sorensen coefficient, or the standard deviation of the radii as you march around the perimeter? You should probably start your own question rather than get into a lengthy discussion here in the comment section of Carole's post.
simple code for feature extraction last stage of our project
Wow - surprised that could be his master's. I wouldn't have even let it get past the journal review process. For one thing it was published in 2014 and does nothing new - it merely applies the standard ABCD skin cancer method that's been around at least 20 years, without inventing anything new. And it didn't even show results. And it does dumb and potentially harmful stuff like histogram equalization - a useless thing that novices usually incorrectly think needs to be done (probably second only to edge detection in their desire to do something even if it's unnecessary). And it doesn't even do color calibration. The asymmetry measure he's using is the Sorensen-Dice coefficient as I mentioned and discussed in Wikipedia: https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient#cite_note-11 That said, feel free to replicate his work and implement the ABCD method.

Sign in to comment.

Answers (1)

regionprops() has an 'EquivDiameter' measurement that you can ask for. See my Image Segmentation Tutorial "BlobsDemo" in my File Exchange if you want a demo.

5 Comments

what's the difference between the result given by
feature = regionprops(labeledImage, 'EquivDiameter');
diam=feature.EquivDiameter.
and
feature = regionprops(labeledImage, 'Area');
a=feature.Area
diam=sqrt(4 * a / pi);
knowing that the region has an irregular shape. It's not a circle
what's the best method?
They should be the same value, assuming you have just one region. If you have multiple regions, do it this way:
measurements = regionprops(labeledImage, 'Area', 'EquivDiameter');
equivDiameters1 = [measurements.EquivDiameter];
equivDiameters2 = sqrt(4 * [measurements.Area] / pi);
Again, they should be the same because we see in the help: " 'EquivDiameter' — Scalar that specifies the diameter of a circle with the same area as the region. Computed as sqrt(4*Area/pi). This property is supported only for 2-D input label matrices." Was there some reason why you thought there might be a difference?
thanks, it works I have the same result. It works even with a region having an irregular shape?? How can i convert the result given in pixel to millimeter??
Yes it works for any shape. To spatially calibrate you need to know how many pixels correspond to a millimeter. Try imaging an object of known size and measuring it.

Sign in to comment.

Asked:

on 5 Nov 2012

Commented:

on 23 Apr 2017

Community Treasure Hunt

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

Start Hunting!