How to calculate diameter of object

14 次查看(过去 30 天)
I have the following code to find the centroids of the particles within this image <- Hyperlink:-
I would like to calculate the diameter of each of the particles so to generate the diameter distribution of the entire image.
X=Image;
template = fspecial('LoG',[51,51],3); % produces a laplacian of Gaussian curve as a template mask use to compare all the intensities in the image
y = conv2(double(X),-template,'same'); % convolves the image with the template to find all the points which correspond to the template mask
FoVY = y(500:700,730:940);
Peaks = imregionalmax(FoVY); % finds all the local maxima
imagesc(Peaks)
LPeaks = bwlabel(Peaks);
R = regionprops(LPeaks);
FoVY = X(500:700,730:940);
imagesc(FoVY);
hold on;
for i = 1:length(R)
plot(R(i).Centroid(1),R(i).Centroid(2),'r.');
centroid = cat(1, R.Centroid);
end
no_of_collagen=length(centroid);

采纳的回答

Image Analyst
Image Analyst 2016-8-9
You can call regionprops() and then ask for EquivDiameter. You might get batter, more comprehensive answers if you put as much effort into your question here on the Mathworks MATLAB Central as you did for some other forum.
  12 个评论
Image Analyst
Image Analyst 2016-8-10
It would be difficult, even manually with imfreehand. I can't really tell where one starts and the other stops. Why isn't the count enough? If you know the total area, and the count, you can get the average area of the collagen.
Ahmed Ismail
Ahmed Ismail 2016-8-10
That is true, I guess with some images you have to be realistic with what you can extract. Thanks for the help.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Data Workflows 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by