如何使用Matlab获取图像中的光标位置

时间:2016-10-12 13:05:42

标签: image matlab cursor

我需要在点击图像后获取光标位置以获得相应的像素坐标。 这就是我到目前为止所做的工作,只要我点击图中的空白部分就可以工作(如果我点击图像,则不会触发回调)。

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'的字段。我想我需要从图像中检索某种轴,但我不知道该怎么做。

2 个答案:

答案 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