I am looking for a slim and with that quickly programmable image processing strategy to measure the distance between two circles over 360°. It is important to notice that the circles are not perfect, see Fig. 1.

enter image description here

Fig. 1: Sketch of the circles

The application of this, so you can imagine the question a bit better, is: I have a cylindrical specimen with an radius r1(alpha) over the 360°, lets call the angle alpha. In the sketch it is the black circle. Now I would like to measure the thikness "delta r" over alpha of a slim layer on this specimen. In the sketch the thin layer is painted in blue.

I draw the circles in kind of paint style on purpose as in the real image I would draw the line where I think both rings would be and would then start with calculating/image processing. I know that it would be possible to detect the edge with some kind of edge detection algo. (eg. Canny), but I am looking for a slim and fast way of getting to my result.

The perfect result could look like this: A function which is an approximation of the black line over alpha and then another function for the blue line.

Here a slim idea I had: Drawing two perfect circles over both cirles and substract them -> delta r, but the made error might be big.

So my question (1) is: How would you solve this to get delta r over alpha? Thinking outside the box is welcome of course!

Question (2) is: I know that the circles I drew are - from a mathematical point of view - not described at each alpha -> so I guess an approximation of the circle is somehow needed. Any ideas how to approximate?

Edit 1: Here you can see a real pictures. For now I don't have the optical system set up, so I just took a photo with my smartphone. Assume the length of the picture in x direction as 40 mm so you have a reference.

enter image description here Fig. 2: Picture of the real specimen.

  • $\begingroup$ There is a number of techniques available to do this but without a sample image it is difficult to provide an accurate suggestion. Is it possible to post a sample image? $\endgroup$
    – A_A
    Commented Jul 11, 2018 at 8:39
  • $\begingroup$ Yeah, pretty straightforward problem. Are you going to have access to the optical system soon? If an image is available from that one then you will also get practical results, otherwise it will be something like "You can try this or maybe this" with examples on this image which is not the best. Your biggest problem is data acquisition here. Hopefully, the optical system will not be producing so many shadows. $\endgroup$
    – A_A
    Commented Jul 11, 2018 at 13:00
  • $\begingroup$ No worries. In addition to Marcus' accurate answer, there are a few more things you can do which might be "easier" / less complex than a Hough Transform but it depends very much on the image quality. So, if you are interested, I would be willing to provide a response, complementary to the accepted answer. $\endgroup$
    – A_A
    Commented Jul 11, 2018 at 16:38
  • $\begingroup$ Sure, why not. Go for it. $\endgroup$
    – KLJ
    Commented Jul 20, 2018 at 13:31
  • $\begingroup$ ...do you have an image from the optical system (?) $\endgroup$
    – A_A
    Commented Jul 20, 2018 at 14:27

1 Answer 1


As @A_A said, it's a relatively straightforward problem once you've got good images.

Assuming you do have that:

  1. Use the Hough transform to find the two main circles in the image
  2. From the center of the inner circle, for each alpha, get a segment (by rotating your image and extracting a triangle) which should contain both your blue and black line
  3. within that triangle, use appropriate signal processing (a simple "average per triangle column" or something, followed by a low pass filter, followed by a threshold, for example) to detect the exact position of the blue and black line
  • $\begingroup$ Thanks for the answer. I just closed the question as this answer is what I can get so far. Agian, thanks for your time! $\endgroup$
    – KLJ
    Commented Jul 11, 2018 at 15:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.