Take a look at this
img = imread('http://i.stack.imgur.com/3GH1x.jpg'); %// read the image bw = img(:,:,2) > 128; %// pick only green points (2nd RGB channel) bw(275:end,:) = false; %// discard the lower flat line [yy xx]=find(bw); %// get the xy coordinates of green pixels
Now you can build the points:
figure;plot(xx,yy, '.');
As a result 
If you are concerned that the line is thick (i.e. several y values ββfor each x), you can simply take the average value
uy = accumarray( xx, yy, [], @mean ); ux = 1:max(xx);
Line visualization
figure;imshow( img );hold on; plot(ux,uy,'r','LineWidth',1.5);

If you are after the grid, then
[gy gx] = find( max(img,[],3) < 60); %
To determine the grid points, we look for x so that many grid points of the gy have the same gx
nx = hist(gx,1:size(img,2)); %
Same for y:
ny = hist(gy,1:334); gyy = find(ny > 100 );
Delete duplicates:
gxx( diff([0 gxx]) == 1 ) = []; gyy( diff([0 gyy]) == 1 ) = [];
Create grid points
[GX GY] = meshgrid(gxx, gyy);
Now the whole picture:
figure('Name','I MUST award Shai a FAT Bounty for this'); imshow( img );hold on; plot(ux,uy,'r','LineWidth',1.5); %
