Can Matlab determine cursor position continuously?

I have an image plot that was created with "imagesc", and I can use ginput to select (x,y) points on the image, then I can read the value of that particular pixel which I output to a figure that accompanies the image.
What I would like to do is have the (x,y) point and pixel value output continuously as I "mouse over" the image, without clicking. Can this be done?

 采纳的回答

The WindowButtonMotionFcn can help:
FigH = figure('WindowButtonMotionFcn', @MotionFcn)
function MotionFcn(FigH, EventData)
get(FigH, 'CurrentPoint')
get(get(FigH, 'CurrentAxes'), 'CurrentPoint')
Now the current point is written to the command window, if the mouse if moved over the figure.

5 个评论

So if I have a figure already created, how would I use this instead of a new figure? Would I have to create this figure from the beginning with this function?
@Art: You can modify the properties of an existing figure also: set(FigureHandle, 'WindowButtonMotionFcn', @MotionFcn).
Be sure to read about the limitations of CurrentPoint in the Figure Properties page, http://www.mathworks.com/help/techdoc/ref/figure_props.html
Thanks, Jan, that worked perfectly for what I wanted to do.

请先登录,再进行评论。

更多回答(2 个)

No, it is not possible to have the cursor position updated continuously. PS/2 and USB mice and serial mice only send coordinate updates periodically, not continuously. (Old joysticks, on the other hand, used to have analog position signals; with those and an analog to digital convertor, you could update the position as fast as the convertor could run.)

2 个评论

@Walter: I think the frequency of updates of the pixel position is limited by the runtime of the Matlab function for evaluating. For a fast movement the mouse position will not be displayed for all pixels.
Anyhow, I assume that "without clicking" is more important for the OP than a real continuity.
Mice do not report for every pixel! USB mice, by default, poll at a maximum of 125 Hz; see http://www.nextlevelgamer.com/tweaks/optimizing-your-usb-mouse-polling-rate
I have seen reports that PS/2 mice max out at 125 Hz but are often appreciably slower.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Data Exploration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by