# Curve detection in cloud of points

I have an array of 2D points and a known curve geometry (it consists of a straight line segment and a circle segment). The points might rotate slightly and are somewhat noisy. I need to find points in array, which correspond to that curve. I have a feeling, that it should be a pretty common task in image processing, which is a new area to me. So, is there a common algorythm for dealing with such tasks? Right now I am reading about Hough Transform, which i think with some modifications can be applied to my task. Am i moving to the right direction? Are there any pitfalls? Thanks.

Here goes sample image where (1) is points array, (2) is curve geometry and (3) is what i would like to achieve:

• Can you provide a sample image of your data so that we can see with what you are dealing? – halirutan Mar 31 '14 at 18:47
• Hough transform: en.wikipedia.org/wiki/Hough_transform – André Mar 31 '14 at 19:26
• This could possibly be framed as a statistical inference problem. – k20 Mar 31 '14 at 19:53
• @halirutan, sure, i made an edit. – Nikita B Apr 1 '14 at 10:09

This should probably be a comment rather than an answer but I can't comment...

If you can define your curve geometry (2) with some function like (its just an example, it can of course be modified) :

$$f(x) = (a x + b) \theta(x-x_0) + \left(\sqrt{R^2 - (x+x_c)^2} - y_c\right)\theta(x_0-x)$$

where $a,b,x_0,x_c,y_c$ are free parameters such that

• $x_0$ is the $x$ coordinate where (2) starts to bent
• $(x_c,y_c)$ is the coordinate of the center of the circle of radius $R$

Then you could use a Levenberg-Marquardt algorithm to fit $f(x)$ to your datas.

• Thank you for a suggestion, i will do some research in that direction. – Nikita B Apr 4 '14 at 8:29
• What does theta stand for in your example? I'm not sure i understand the notation. – Nikita B Apr 4 '14 at 8:34
• sorry, it's simply the heavyside function... it's one simple way to write things without using if conditions – PinkFloyd Apr 4 '14 at 8:36
• Ah, ok, i get it – Nikita B Apr 4 '14 at 9:04
• @NikitaBrizhak Is my suggestion applicable to your problem ? – PinkFloyd Apr 8 '14 at 8:09