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?

 채택된 답변

Jan
Jan 2011년 7월 13일

1 개 추천

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

Art
Art 2011년 7월 13일
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?
Jan
Jan 2011년 7월 13일
@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
Art
Art 2011년 7월 14일
Thanks, Jan, that worked perfectly for what I wanted to do.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2011년 7월 13일

0 개 추천

See Matt Tearle's doodle function in this thread:
Walter Roberson
Walter Roberson 2011년 7월 13일

0 개 추천

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

Jan
Jan 2011년 7월 13일
@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에 대해 자세히 알아보기

질문:

Art
2011년 7월 13일

댓글:

2017년 10월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by