我正在尝试在MATLAB中的ButtonDownFcn
数字上使用imagesc
。我想通过单击工具栏上创建的自定义按钮来启用此功能。
ButtonDownFcn
将调用方法,使其返回使用ButtonDownFcn
选择的像素的位置,以便我可以绘制该像素随时间变化的图形。
注意:
- 我在matlab中使用GUIDE
- imagesc
正在绘制3D矩阵。我已经实现了一些代码,允许我使用在GUIDE中创建的按钮来浏览图像随时间的变化。
目前我正在努力的是ButtonDownFcn
的{{1}}。我已经一遍又一遍地阅读了如何做到这一点(通过互联网研究),但我似乎无法让它发挥作用。
感谢任何帮助。
这是我的代码:
imagesc
答案 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'
。但是,在这种情况下,应该以编程方式过滤图像(或感兴趣区域)外部的点击点。
希望它有所帮助。