Crofton Perimeter in the Analyze Particles Feature

Tags: #<Tag:0x00007fd5469ab870> #<Tag:0x00007fd5469ab640>


G’Day Everyone

I am using the Analyze Particles feature to analyse porosity in Aluminium. I’d like to accurately calculate the shape of the pores, which requires the particle perimeter to be calculated. I also am measuring other characteristics (area, location), so I am currently Analyse Particles plugin.

I’ve noticed that the typical border pixel count of Perimeter that is given by the Analyse particles Feature isn’t accurate enough for my needs. For example, using the typical pixel border count method, for a perfect cicle I get a circularity of 0.89… I’d like to calculate the crofton perimeter of the particles, to increase the accuracy of my measurements.

Does anyone know how I could incorporate the Crofton Perimeter into the analyze particles measurement? Is there someway to customize the measurements??




Hi Julian,

I was skeptical of this at first but I made a tiny macro that does this and indeed, the larger the perfect circle, the further away from a perfect circularity measurement we are… I would have thought the opposite…

run("Set Measurements...", "area perimeter shape limit display redirect=None decimal=3");
run("Close All");
newImage("Untitled", "8-bit black", 512, 512, 1);
xsum = 0;
ysum = 0;
for (i=1; i< 80; i+=5) {
	xsum = xsum + 4 + 2*i;
	if (xsum + 2*i > getWidth()) {
	y = ysum + 4;
	makeOval(xsum, y, 2*i, 2*i);

run("Select None");
setThreshold(129, 255);
run("Analyze Particles...", "display");

This is the way the perimeter is calculated in MorphoLibJ, and you do get more accurate results in terms of circularity with it. Difference is, you need to get the binary masks, then run Connected Components labelling and finally Region Morphometry. You’ll get a new results table with the more accurate Circularity.
Below, comparison of the output between analyze particles and MorphoLibJ.

image image


What you call a “perfect circle” is not so. You are dealing in discrete space and it matters how perimeter and area are computed. You can get only an approximation to circularity of 1 which happens only in continuous space.



For completeness, some details about the Crofton method as implemented in MorphoLibJ are detailed in a paper we wrote with a colleague about the ITK implementation. It describes methodological questions for discretization of geometric shapes (circles, ellipses, squares…) and a study on estimation errors with various scenarios.


Thanks for the help, Oburri! I really appreciate the time!

Problem is now solved!


Cheers Gabriel. I now realise that, and am very surprised on the large effect that it has!


Thanks for sharing - this will be a super helpful reference!