# 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)

Thanks for your help guys

Julien

edit retag close merge delete

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

Just for clarity.

( 2016-07-13 07:48:35 -0500 )edit

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

Please, do not provide update as answers. Instead, update your original post with the edit button

( 2016-07-15 05:12:38 -0500 )edit

May be use this paper

or

1. Threshold your image
2. FindContour
3. use fourier descriptors to have a mathematical contour model
4. use this model to find contour tangent at each contour point
( 2016-07-15 05:49:47 -0500 )edit

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

## Stats

Asked: 2016-07-13 05:04:01 -0500

Seen: 867 times

Last updated: Jul 15 '16