我正在尝试使用按钮按下放大Mandelbrot设置的区域。我正在使用GUIDE,因此想要使用轴的ButtonDownFcn
。我将图像存储在名为imag
的数组中,该数组包含x
& y
坐标和颜色。
可以在绘图之前调用该函数,但是当我使用以下命令显示图像时,它将无法再访问:
axes(handles.DrawAxes);
cla
imagesc(imag,'HitTest','Off');
答案 0 :(得分:0)
As explained here,high-level绘图函数实际上在调用时清除了轴属性。因此,您要么使用hold
函数(这会影响NextPlot
属性),要么只需在 ButtonDownFcn
/ {{之后设置轴image
回调 1}} / imagesc
被调用。
以下是一个例子:
imshow
稍后,如果您需要更新图像,请使用图像句柄更新% 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');
属性,而不是重新绘制图像。