Hi med-sweng,
According to the documentation for getpts, the valid inputs to this function are a figure (fig), the axes specified by the handle ax, or the current figure handle (gcf). In your example, you are passing the result of imread('xyz.jpg') which is a matrix containing the image data and so is not a "valid handle" as per the error message. You may need to do something like the following instead:
[I] = imread('xyz.jpg'); % read the image into the matrix
imshow(I); % display the image
[x,y] = getpts; % get the points from the current image
You don't need to pass anything to getpts as the current figure handle will be used. (An alternative may be to do [x,y] = getpts(imshow(I)) ;
Hope that this helps!
Geoff