How to automatically find length of an edge in an image after edge detection is applied?

Hello, I am new to ImageJ and still trying to get my head around it so bear with me. As part of my third year physics project at university I am growing icicles, I wanted some way to take some images of the icicles then find the area/vertical length using a batch macro.The icicles imaged onto a green background as shown below, and a picture was taken of the ruler in position of the icicle, so that a pixel to centimetre(cm) mapping could be made. To automate it using batch I figured i’d use edge detection, but i’m stuck as to how use this to measure and output the length of the icicle.

In cases like this I would suggest taking a background image—i.e., one with no icicle present—and subtracting that from your icicle images. This will of course require you to have a stable camera mount and stable light source. But the subtracted image should then be exactly what you are looking for: the icicle with nothing else, very easy to segment and measure.

It would also be good to improve the quality of your images, before trying to analyze them. In particular, your background is highly uneven due to reflection (from placement of the light source) as well as wrinkles in the paper.

See also


Hi @inquisitivejames,
take a look at this answer:

to a very similar question:

Hi @inquisitivejames, do you have any suggestion on how I can obtain the average distance between the rim of the circle and the detected inner edge in this image? I have tried to draw a centered circle in the center of the image, taking the difference between the diameter of the circle and that of the image as a rough estimate. I am looking for a better approach that will account for the nonuniform edge.Thanks.

Sobel detection