Using WindowButtonMotionFcn with getrect / getline

2 次查看(过去 30 天)
Hi,
I'm using a 'WindowButtonMotionFcn' callback on a figure to continually display the current position (in pixel and map coords) as the mouse moves over an image. This works just fine.
The problem I'm having, however, is that my GUI allows the user to specify a region of interest either as a rectangle (via getrect) or as a polygon (via getline). While the user is performing either of these operations my WindowButtonMotionFcn callback is no longer being triggered so the current position is no longer updated.
What steps are required to ensure that my callback continues to be triggered while using getrect / getline?
Thanks in advance for any replies.
-- Dan

回答(3 个)

Image Analyst
Image Analyst 2012-4-6
I don't use the WindowButtonMotionFcn at all. I just set up impixelinfo(). However even that won't work when you're calling getrect() so I think you're out of luck as far as getting "live" coordinates while drawing the box.
  2 个评论
Dan
Dan 2012-4-6
Thanks for your reply, which basically confirmed that I'm probably SOL!
Image Analyst
Image Analyst 2012-4-6
It might help somewhat if you call "axis on" right after you display your image.

请先登录,再进行评论。


Dan
Dan 2012-4-6
This might not be the most elegant workaround, but I was able to call my original WindowButtonMotionFcn from within getrect/getline by making a local copy of getrect.m / getline.m and then making a few slight modifications as needed.
I'm still interested to find out if there is a less invasive solution, though!

Walter Roberson
Walter Roberson 2012-4-6
Please see http://www.mathworks.com/matlabcentral/answers/2005-windowkeypressfcn-and-datacursormode-on as I suspect the mechanism is the same: zap a listener temporarily.

Community Treasure Hunt

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

Start Hunting!

Translated by