如何显示坐标和使用ginput(How to display coordinates and use

2019-06-26 06:00发布

我似乎无法让我的形象,以显示我的鼠标光标的坐标,并且还使用ginput在同一时间点保存。

我目前正在尝试以下操作:

MriHotrod = imread('Image.bmp');
Fig = figure('Name','BobDole'),...
    imshow(Image, 'InitialMagnification', 250)

axis on
impixelinfo

Image_1 = ginput(4)

close BobDole

该ginput仍然有效,但impixelinfo保持不变

Pixel Info = (X, Y) Pixel Value

我知道解决这个让一些方法,但它们涉及的功能。 这似乎是一个相当简单的问题,可避免使用的功能。

Answer 1:

如果您键入edit ginput并滚动到行238十岁上下,你会看到

% Adding this to enable automatic updating of currentpoint on the figure 
set(fig,'WindowButtonMotionFcn',@(o,e) dummy());

换句话说, ginput设置一个WindowButtonMotionFcn的身影。 我的猜测是, impixelinfo使用此功能为好,这样它就会尽快禁用ginput被调用。

事实上,在impixelinfoval (由使用的功能impixelinfo ),我们发现周围线83:

callbackID = iptaddcallback(hFig,'WindowButtonMotionFcn', @displayPixelInfo);

奇怪的则是:它是如何让你点击4点后复位?

这片神奇的是通过线222上下的完成ginput

initialState.uisuspendState = uisuspend(fig);

显然, uisuspend是用来中止任何预先存在的一点点无证功能WindowButton*功能,以便稍后重置。 所以,如果你注释掉这行

%initialState.uisuspendState = uisuspend(fig);

并保存ginput ,并重新做了整个事情,你看你想要的行为。

你还会看到,为什么这些功能会被停在首位 - 至于原因,我不太明白,当两个这样的功能被启用一切变得unworkably缓慢。



文章来源: How to display coordinates and use ginput