Ask Your Question
1

Particles morphology calculations

asked 2016-07-13 05:08:11 -0600

jmaire gravatar image

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.

image description

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)

image description

Thanks for your help guys

Julien

edit retag flag offensive close merge delete

Comments

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

Just for clarity.

MRDaniel gravatar imageMRDaniel ( 2016-07-13 07:48:35 -0600 )edit

2 answers

Sort by ยป oldest newest most voted
0

answered 2016-07-15 05:07:13 -0600

jmaire gravatar image

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

image description

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

edit flag offensive delete link more

Comments

1

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

LorenaGdL gravatar imageLorenaGdL ( 2016-07-15 05:12:38 -0600 )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
LBerger gravatar imageLBerger ( 2016-07-15 05:49:47 -0600 )edit
0

answered 2016-07-14 09:31:09 -0600

elias gravatar image

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.

edit flag offensive delete link more

Question Tools

2 followers

Stats

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

Seen: 1,236 times

Last updated: Jul 15 '16