Using getpts to get selected points

26 次查看(过去 30 天)
I'm trying to use `getpts` to get the location of the selected points by the user.
I used it as follows:
[X,Y] = getpts(imread('xyz.jpg'));
But, got the following error:
Error using getpts (line 46)
First argument is not a valid handle.
Error in program (line 7)
[X,Y] = getpts(imread('xyz.jpg'));
Why is that?
Thanks.

回答(1 个)

Geoff Hayes
Geoff Hayes 2014-4-19
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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by