# Particles morphology calculations

Hi,

I'm a scientist and right now I have to automate the morphological description of sand grains. I want to compute those descriptors : - Circularity, according to Cox (Riley, 1941), that describes wether the grain is circular or elongated (easy to compute, no big deal here) - Roundness that describes if angles of sand grain are sharp or rounded.

I usually use imageJ for image analysis but its descriptor for roundness is shitty (4A/(Pi(major axis)^2)).

According to Wadell (1935) the roundness is the average radius of the corners divided by the inscribed circle's diameter. I would like to use opencv to find corners positions and to find the matching circles.

I'm just an opencv beginner and i don't have weeks to spend on it. Do you think that's something I could easily implement in onpencv with only some hours of work ?

Here are some sand grains I shot (some parts are blurry since microscope depth of field is limited) Julien

edit retag close merge delete

Can you add another picture showing the expected output of the CV method?

Just for clarity.

Sort by » oldest newest most voted

Of course, here it is, circles were made by hand, that is what i want to automate since i will have hundreds of images to analyze Open CV should compute the circles on grain corners, output the original image with circles overlay, then do some simple maths

Average diameter of the circles (1 to 16) = 36 px Diameter of biggest inscribed circle (17) = 273 px

Roundness = 36/273 = 0,13

more

1

May be use this paper

or

2. FindContour
3. use fourier descriptors to have a mathematical contour model
4. use this model to find contour tangent at each contour point

Hi,

Check the tutorial here: http://docs.opencv.org/2.4/doc/tutori...

What you basically want to do is threshold the image, then do Canny, then use the example above to fit a circle inside the outlines that you get from Canny.

Kind regards.

more

Official site

GitHub

Wiki

Documentation