Imagesc ButtonDownFcn MATLAB中的问题,使用自定义工具栏操作

时间:2013-07-05 18:14:59

标签: matlab toolbar matlab-guide

我正在尝试在MATLAB中的ButtonDownFcn数字上使用imagesc。我想通过单击工具栏上创建的自定义按钮来启用此功能。

ButtonDownFcn将调用方法,使其返回使用ButtonDownFcn选择的像素的位置,以便我可以绘制该像素随时间变化的图形。

注意:
- 我在matlab中使用GUIDE
- imagesc正在绘制3D矩阵。我已经实现了一些代码,允许我使用在GUIDE中创建的按钮来浏览图像随时间的变化。

目前我正在努力的是ButtonDownFcn的{​​{1}}。我已经一遍又一遍地阅读了如何做到这一点(通过互联网研究),但我似乎无法让它发挥作用。

感谢任何帮助。

这是我的代码:

imagesc

1 个答案:

答案 0 :(得分:1)

这是一个简单的例子:

%% Init
fig_h = figure('CloseRequestFcn', 'run = 0; delete(fig_h);');
rgb = imread('peppers.png');
run = 1; t = 0;

%% Loop
while run
    t = t + 0.05;
    imagesc(rgb*sin(t), 'ButtonDownFcn', 'disp(''Clicked'')');
    pause(0.01);
end

正在使用图片的'ButtonDownFcn'以上,因此图片的'HitTest'属性必须为'On'

以下是使用'ButtonDownFcn'轴的情况,由于图像位于轴的前面,因此图像的'HitTest'属性应为'Off'或者轴为赢不可选择。

%% Loop
ax = axes;
while run
    t = t + 0.05;
    imagesc(rgb*sin(t), 'Parent', ax, 'HitTest', 'Off');
    set(ax, 'ButtonDownFcn', 'disp(''Clicked'')')
    pause(0.01);
end

也可以使用图'ButtonDownFcn',图像'HitTest'应该是'Off'。但是,在这种情况下,应该以编程方式过滤图像(或感兴趣区域)外部的点击点。

希望它有所帮助。