Calculate dark/light area and perimeter on complex images

Sample image and/or macro code



This image is a picture of a snail (shell).

  • What is the image about? Provide some background and/or a description of the image. Try to avoid field-specific “jargon”.

Analysis goals

My aim is to calculate the total dark/light area in % relative to the shell area as well as the length of the perimeter that surrounds these areas. My reference is this paper where they have done so before using ImageJ:


My biggest issue is that thresholding is not accurate enough as can be seen on the second sample image. At the same time, Fiji segmentation or Fiji skeletonize options seem so complex that I have no clue how to adjust them properly for my case. I have tried the default settings for these, but all the results have been subpar - either the middle bright spots get covered or the spots closer to the outline of the shell are being ignored.

I would be grateful for any help!

Thank you!

Hi @SShep,

Interesting problem.

One main difference I see between your image and the papers is the reflections taking place on the snail, which are going to be a nightmare to fix in post-processing. This calls for optimizing the acquisition protocol before proceeding with your area quantification.
Perhaps a polarizer on the camera could help reduce the reflection? Or submerging the snail in water so that there is less reflection? The paper also seems to user a back-illuminated table for the imaging and a diffuse light on the top, which would help minimize the reflections again…

Separately, because of the shape of the snail, you are going to get some aberrations on the edges of your image, so you should limit your analysis to a specific area of the snail in order do avoid having too much bias.

Let me know if this helps, hopefully this will make the threshold-based approach easier.


1 Like