How to filter the points to get only the left most and right most?

Hi all,
Kindly need your attention here.
Let say,


n = 0;  // number of corner points detected
if (......)
{
corner_list[n].x = j;  //x coordinate
corner_list[n].y = i;  //y coordinate
n++;
:
:
}

“m7.pgm”–>attached
This is the image and the marking at the contour are the detected points.
“m-004-1.pgm”–>attached
I want to get only the left most and right most points as corner. How can i write the codes to keep only these 2 corner points for every image?
From the left side, we can see there are two points with the same x-coordinate. From the right there are 3 or 4 points at the same x-coordinate.
How can we program to choose the most middle position for the left most and right most corner points?

Please help or give some ideas.
Thank you.

Best regards,

m7.zip (375 Bytes)
m-004-1.zip (44.3 KB)


m7.zip (375 Bytes)
m-004-1.zip (44.3 KB)

I’m not sure of your data, it looks like a series of X, Y, VALUE triples.

How about something like this …

upperleft_y = first value of Y
upperleft_x = first value of X
lowerright_y = first value of Y
lowerright_x = first value of X

As you iterate through the remaining points X,Y,VALUE in your data:

if (X < upperleft_x) AND (Y < upperleft_y)
upperleft_x = X;
upperleft_y = Y;

if (X > lowerright_x) AND (Y > lowerright_y)
lowerright_x = X;
lowerright_y = Y;

If each line of your .PGM represents one image, then repeat the above for each line and store the resulting upperleft and lowerright X,Y pairs in your corners] array.

mike

The code from my previous post is to store the x and y coordinates which are detected into corner_list[n]. However, i need to filter it and save the left most and right most corner points, assume to be (x1,y1) and (x2,y2).

Can you show me how to get the correct x and y while there are two left most points with the same x-position? The height of my image is 80 pixels. So, if there is any left most or right most points with the same x-position, i will choose the one with y value nearest to 40 pixels. Can you show me how to program it and connected to my posted program?

Sorry I have just joined the world of programming. Any help will be appreciated. Thanks.