Solving Quadratic behavior of data points and clustering them in 2D

Hi everybody,
I am currently working on fitting curves/circles to a set of points in 3D but wanted to do it in 2D first to see if I can achieve it quickly. I have one set of points with two nonlinear trends probably in circular shapes along the perpendicular lines. There are atleast two points on each line and all of those points are in one dataset. For clarity I have made sample images and uploaded them on server which can be seen here http://score.inf.brad.ac.uk/scim/images.html
The first image is the input where 12 points are given in two circular shapes. My aim is to separate them in two clusters based on their direction so that they can fit two circles going through (possibly) each cluster point. The result I require is proposed in the second image where one circle/curve can be fit through all red points and the other one through blue points. I have been reading the quadratic behavior in 2D and 3D but due to lack of my mathematical skills I am finding it very hard to understand all the concepts and implement them in MATLAB. Could you please give me some direction or help with how I can achieve this task. There may be more than two circles/curves to be fit depending on the number of points given on each line but I guess once I know the general idea of how do it for two it can be easy for more than two? Also I need to remove noisy extra points on the lines but that is the stress for my future work.
One solution I thought of is to start from each perpendicular line and read first point and put it in one cluster and second points in second cluster and so on, but the problem here is I don't know whether the input points will be exactly in circular shapes or linear shapes or nonlinear shapes or even if there will be exact matching number of points on each line. For example one line may have two points, second line may have three or four etc. Therefore I am foreseeing this technique as very vague and incorrect.
Could anybody help please?

Answers (0)

Asked:

on 1 Mar 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!