MATLAB Answers

figure, imshow, saveas and getpts

17 ビュー (過去 30 日間)
Douglas Brenner
Douglas Brenner 2016 年 10 月 13 日
コメント済み: Image Analyst 2018 年 4 月 21 日
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?

  0 件のコメント

Sign in to comment.

回答 (2 件)

Image Analyst
Image Analyst 2016 年 10 月 13 日
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();

  5 件のコメント

表示 2 件の古いコメント
Image Analyst
Image Analyst 2016 年 10 月 13 日
Your image may be floating point. Use []:
imshow(yourImage, []);
Douglas Brenner
Douglas Brenner 2016 年 10 月 13 日
Got it. You have to write and read it as uint8
Image Analyst
Image Analyst 2016 年 10 月 13 日
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.


Kaleesh Bala
Kaleesh Bala 2018 年 4 月 20 日

but in this case [x,y] = getpts

x =

118.5645
242.4355

y =

199.6316
197.2105

its giving both x1y1 and x2 y2...how to get only x1x2

  1 件のコメント

Image Analyst
Image Analyst 2018 年 4 月 21 日
You already have that in your x variable.

Sign in to comment.


Translated by