figure, imshow, saveas and getpts

7 views (last 30 days)
Douglas Brenner
Douglas Brenner on 13 Oct 2016
Commented: Image Analyst on 21 Apr 2018
I save an image using saveas. Then I open it and display it using imshow in figure 1. When I use getpts to get pixel coordinates, the coordinates I get are that of figure 1 not that of the image. I.e, If I click on the axis of the image, I don't get (0,0), I get the coordinates of the image origin in figure 1. How do I get the image coordinates?

Answers (2)

Image Analyst
Image Analyst on 13 Oct 2016
Save images with imwrite(). Recall them with imread(). Display them with imshow(). Get pixel values with impixelinfo:
hp = impixelinfo();
This will let you mouse around and display the (x,y) and gray level in a status label on your figure. If you need the user to click on a point, then use ginput():
[x, y] = ginput();
Image Analyst
Image Analyst on 13 Oct 2016
Yes, for most standard image formats. Or you could use uint16. If you want to keep as floating point instead of integers, use save() to save as a .mat file, then use load() to recall it.

Sign in to comment.

Ramesh Bala
Ramesh Bala on 20 Apr 2018

but in this case [x,y] = getpts

x =


y =


its giving both x1y1 and x2 to get only x1x2

  1 Comment
Image Analyst
Image Analyst on 21 Apr 2018
You already have that in your x variable.

Sign in to comment.


Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!