MATLAB: How can i calculate morphological features such as nucleus area and perimeter, number of the separated parts of nucleus, mean and variance of the nucleus boundaries and roundness criterion of nucleus are extracted from the segmented area ? any code

feature measurementImage Processing Toolboximage segmentation

example segmented image.

Best Answer

You can get most of that from regionprops(). See my Image Segmentation Tutorial: https://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads_desc
props = regionprops(binaryImage, grayImage, 'Area', 'Perimeter', 'EulerNumber');
allAreas = [props.Area];
allPerimeters = [props.Perimeter];
allRoundnesses = 4 * pi * allAreas ./ allPerimeters .^ 2; % Or whatever formula you use.
To get the mean and variance of the boundaries, you have to define what the mean of the boundary is. One way might be to smooth it out until it's really smooth using the function sgolayfilt() in the Signal Processing Toolbox. See attached demo. Then you can use min() to find the closest original point and get the distance between them with sqrt(). Then take the standard deviation of all those distances with std().