2016-04-09 4 views
0

ボタンプレスを使用してマンデルブロセットの領域を拡大しようとしています。私はGUIDEを使用していますので、軸のButtonDownFcnを使用します。私は、x & yの座標と色を含むimagという配列内にイメージを格納します。Matlab ButtonDownFcnがイメージで動作しません

機能は、私は次のコマンドを使用して画像を表示するときしかし、それはもはやアクセス可能であり、プロットする前に呼び出されないことができます。

axes(handles.DrawAxes); 
cla 

imagesc(imag,'HitTest','Off'); 

答えて

0

As explained herehigh-level関数をプロットする呼び出されたときに実際にAxesプロパティをオフにします。だから、(NextPlotプロパティに影響します)hold機能を使用するか、または単にimage/imagesc/imshowが呼ばれた後の軸にButtonDownFcnコールバックを設定します。あなたは、画像を更新する必要がありCDataプロパティの代わりに、画像を再プロットを更新するために、画像ハンドルを使用している場合その後

% create axes 
ax = axes(); 

% display image 
img = imread('cameraman.tif'); 
imagesc(img, 'Parent',ax, 'PickableParts','none', 'HitTest','off'); 
axis(ax, 'image') 
colormap gray 

% set click callback 
ax.ButtonDownFcn = @(o,e) disp('axis clicked'); 

:ここ

は一例です。

+0

注:上記の例は、R2014bで導入されたHG2グラフィックスシステム用です。 – Amro

+0

これで、buttondownfncを次のコードを使って動作させることができます: axes_handle = handles.DrawAxes; imagesc(imag、 'HitTest'、 'Off'); セット(axes_handle、 'ButtonDownFcn'、{@ FcnName、a、b}); しかし、私はどのように位置をクリックしたり、自分のGUIのハンドルにアクセスすることができるかわかりません。 –

+0

これらは別々の質問ですので、新しい質問を作成してその部分について質問する必要があります。しかし、あなたを始めるには、マウスの位置を取得するために使用される 'CurrentPoint'プロパティがあります。ハンドルに関しては、 'findobj'を使うか、' guidata'や 'getappdata'を使ってUIにハンドルを格納することができます。 – Amro

関連する問題