我需要在点击图像后获取光标位置以获得相应的像素坐标。 这就是我到目前为止所做的工作,只要我点击图中的空白部分就可以工作(如果我点击图像,则不会触发回调)。
image(my_image);
set(gca, 'ButtonDownFcn', @click);
function click(o, event)
pt = get(o, 'CurrentPoint')
end
之后,我尝试了这个:
image(my_image, 'ButtonDownFcn', @click);
function click(o, event)
pt = get(o, 'CurrentPoint')
end
但是,它告诉我图像类不包含任何名为' CurrentPoint'的字段。我想我需要从图像中检索某种轴,但我不知道该怎么做。
答案 0 :(得分:0)
我之前必须解决类似的问题。
如果您添加如下所示的空回调,则gui将跟踪光标位置
function figure1_WindowButtonMotionFcn(~, ~, ~)
然后,figure1句柄应该有一个属性currentPoint
,它将描述鼠标的位置。如果你编写一个可以访问figure1句柄的click事件函数,就像这样:
image(my_image, 'ButtonwDownFcn', ...
@(hObject,eventdata)myGui('click',hObject,eventdata,guidata(hObject))
在其中包含以下行以访问鼠标位置
mouseLocation = get(handles.figure1, 'currentPoint');
然后你必须使用图中轴的位置将鼠标位置转换为像素位置。
答案 1 :(得分:0)
好吧,我找到了解决问题的方法。只需要为图像指定一个轴,然后通过“父母”来获取它。属性。
im = image(0, 0, my_image);
set(im, 'ButtonDownFcn', @click);
function click(o, event)
pt = get(get(o, 'Parent'), 'CurrentPoint')
end