Matlab 如何显示坐标和使用ginput

Matlab 如何显示坐标和使用ginput,matlab,user-interface,mousemove,matlab-figure,cursor-position,Matlab,User Interface,Mousemove,Matlab Figure,Cursor Position,我似乎无法让我的图像显示鼠标光标的坐标,同时也无法使用ginput存储点 我目前正在尝试以下方法: MriHotrod = imread('Image.bmp'); Fig = figure('Name','BobDole'),... imshow(Image, 'InitialMagnification', 250) axis on impixelinfo Image_1 = ginput(4) close BobDole 轧花机仍在工作,但刺针保持不变 Pixel Info

我似乎无法让我的图像显示鼠标光标的坐标,同时也无法使用ginput存储点

我目前正在尝试以下方法:

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

axis on
impixelinfo

Image_1 = ginput(4)

close BobDole
轧花机仍在工作,但刺针保持不变

Pixel Info = (X, Y) Pixel Value

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

如果键入
编辑ginput
并滚动到第238行,您将看到

% Adding this to enable automatic updating of currentpoint on the figure 
set(fig,'WindowButtonMotionFcn',@(o,e) dummy());
换句话说,
ginput
在图中设置了一个
WindowButtonMotionFcn
。我猜
ImpixeInfo
也使用此函数,因此只要调用
ginput
,它就会被禁用

事实上,在
impixelinfoval
(impixelinfo使用的函数)中,我们在第83行发现:

callbackID = iptaddcallback(hFig,'WindowButtonMotionFcn', @displayPixelInfo);
奇怪的是:点击4点后,它是如何复位的

这个魔法是通过
ginput
的第222行实现的:

initialState.uisuspendState = uisuspend(fig);
显然,
uisuspend
是一个没有文档记录的小函数,用于挂起任何预先存在的
WindowButton*
函数,以便稍后重置它们。所以,如果你把这行注释掉

%initialState.uisuspendState = uisuspend(fig);
保存
ginput
,然后重新执行整个操作,您将看到所需的行为


您还将看到为什么这些函数首先会被挂起——原因我不太明白,当启用两个这样的函数时,一切都会变得非常缓慢。

感谢您的回复,不幸的是,我们的ginput函数必须非常不同,因为您提到的行都不在我的ginput函数中。我试着注释:state=uisuspend(图),它出现在第92行。但是这不起作用。你有什么版本的Matlab?啊。我有R2012a。显然,在过去的两年里,他们改变了很多。无论如何,这个理由应该仍然成立。您是否总是在保存后重新执行所有命令?不太清楚您的意思,但我保存编辑,然后重新运行脚本。但是不用担心,非常感谢您的帮助,我将用一把梳子仔细检查ginput,或者从朋友那里获得R2012a ginput函数。再次感谢!使用R2010a注释这两行:第92行和第183行。