【发布时间】:2019-11-12 10:25:34
【问题描述】:
在 GUI 中,我想提供几个按钮来在图像中绘制不同形状的 ROI。用户选择“多边形”按钮,当他将鼠标悬停在轴上时,他可以绘制多边形-ROI。但是,如果用户决定从多边形更改为圆形(或其他)没有绘制 ROI,则必须取消最后的 ROI 绘制过程。我想,这归结为一个问题,如何以编程方式取消由例如drawpolygon 初始化的 ROI 绘制过程。
在下面的代码中,我希望drawpolygon-进程在用户在绘制 ROI 之前单击取消按钮时停止。有任何想法吗? (请注意,drawpolygon 是图像处理工具箱的一部分,是在 Matlab R2018b 中引入的,因此两者都是必需的)。
function roi2mask()
[ax, cancel] = local_roi2mask_gui();
cancel.Callback = @(~,~) display('Cancel was clicked, but how to finish the ROI selection?');
roi = drawpolygon(ax);
cancel.Callback = @(~,~) display('ROI was already selected...');
end
function [ax, cancel] = local_roi2mask_gui()
f = figure('menubar','none','toolbar','none');
f.Position(3:4) = [300 400];
p1 = uipanel(f, 'Units', 'normalized', 'Position', [0, 0, 1, 2/3], 'Title', 'Axis');
ax = axes(p1);
imagesc(ax, peaks(64));
cancel = uicontrol(f, 'String','Cancel', 'Position', [10, 350, 100, 20]);
end
【问题讨论】:
标签: matlab