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: data sample

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

1 Answer 1


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.

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

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.