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

私の質問:関数で画像imにアクセスするにはどうすればよいですか? clickInImageグローバル変数が使えません。

4

1 に答える 1

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
于 2012-06-13T16:39:24.337 に答える