如何从图像的按钮事件处理程序访问图像?

时间:2012-06-13 16:04:31

标签: matlab event-handling scope

我在初始化中有以下代码

im = imread('Image02.tif');
figure(); imagesc(im); colormap(gray);
[hImage hfig ha] = imhandles(gcf);
set(hImage,'ButtonDownFcn',@clickInImage);

clickInImage函数看起来像这样

function clickInImage(s,e)
    pt=get(gca,'Currentpoint');
    x=pt(1,1);
    y=pt(1,2);
    ...

我的问题:如何在im功能中访问图片clickInImage?我不能使用全局变量。

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法检索回调内的图像:

img = get(s, 'CData');

否则,在主GUI功能中使回调成为嵌套函数,这样您就可以访问其所有父工作区:

function myGUI()
    img = imread('coins.png');
    figure
    hImg = imagesc(img); colormap(gray)
    set(hImg,'ButtonDownFcn',@clickInImage);

    function clickInImage(src,evt)
        %# here you can access `img` directly ...
        img;
    end
end