2012-06-13 50 views
0

我有以下的初始化如何從圖像的按鈕事件處理程序訪問圖像?

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); 
    ... 

我的問題:我如何才能獲得圖像imclickInImage功能?我不能使用全局變量。

回答

1

你可以通過檢索回調內的圖像:

img = get(s, 'CData'); 

否則,請在回調嵌套函數你的主界面功能裏面,這樣,你得到它的所有父工作訪問:

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