Home > Back-end >  How can you measure the length of curved grid lines on an image?
How can you measure the length of curved grid lines on an image?

Time:07-01

Suppose you have an image like this:

Grid with curved lines

How can you measure the combined length of all the lines in this image?

I have tried (naively) skeletonising the image and then counting the number of pixels. However, this gives inaccurate results, as diagonal steps are actually longer than vertical/horizontal ones.

My other idea is to generate a chain code for all the line segments , and then use something like Freeman's method to measure the length from the chain code. However, generating the chain code is going to be quite tricky I think, as usually they start/stop at the same point, and this won't work for the grid shape.

Am I missing something obvious here? Is there an easier way to do this?

CodePudding user response:

As far as I can see, the strokes are 3 pixels wide. So dividing the number of black pixels by three isn't a too bad approximation.

Alternatively, use a thinning algorithm to reduce the width to a single pixel (connexity 8), then seed-fill the whole outline. You will use a simple recursive 8-ways fill, and count the lateral and diagonal moves separately. In the end the length is given by L D√2.

enter image description here

  • Related