Click here to Skip to main content
15,921,276 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
How I can calculate distance between every 2 points and then get their ratio ratio?
Here is the idea. It's for face recognition, idea is to detect every eye separately and nose. Center of detection is one point(how to set that point?). Then I need to calculate distance between two eyes and then lets say left eye and nose. At the end get the ratio of this 2 distances.

to calculate distance you must apply such this function :
public int Distance2D(int x1, int y1, int x2, int y2)
           //     ______________________
           //d = √ (x2-x1)^2 + (y2-y1)^2

           //Our end result
           int result = 0;
           //Take x2-x1, then square it
           double part1 = Math.Pow((x2 - x1), 2);
           //Take y2-y1, then sqaure it
           double part2 = Math.Pow((y2 - y1), 2);
           //Add both of the parts together
           double underRadical = part1 + part2;
           //Get the square root of the parts
           result = (int)Math.Sqrt(underRadical);
           //Return our result
           return result;
Share this answer
retexis 23-Nov-12 12:22pm    
Thank you very much, that's exactly what I am looking for.
Distance between two points is easy: it's Pythagorus's theorem:
dist = Square Root(Square(Diff(X1, X2)) + Square(Diff(Y1, Y2)))

Ratio is also easy: divide one by the other.

Finding the points? Over to you - it's a lot harder!
Have a look at some of these: Google: "Face Recognition Codeproject"[^]
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900