Gui Matlab上的imellipse

时间:2014-06-17 02:18:33

标签: matlab user-interface

我正在进行图像处理这个项目。我试图使用imellipse来获取我想要的区域的掩码,以便我可以在我的Gui界面上绘制它。

我总是得到错误" createMask期望包含图像的当前图形" 有谁知道导致此错误的原因是什么?

这是我的程序

global RC
b = imellipse(handles.axes1)
position =wait(b)
ma = createMask(b,RC);
imk=immultiply(ma,RC);
axes=(handles.axes1);
figure;imshow(imk);

1 个答案:

答案 0 :(得分:0)

createMask的格式为:

BW = createMask(h_roi,h_im);

h_roi是roi的句柄(在您的情况下为b),而h_im是图像的句柄。例如在这个标准示例中来自docs:

img = imread('pout.tif');
h_im = imshow(img); % creates image handle
e = imellipse(gca,[55 10 120 120]); % creates handle to roi
BW = createMask(e,h_im); % uses those two to get mask

如果您没有图像的句柄,可以使用findobj从适当的轴获取它:

h_im = findobj(gca,'Type','image');

在您的情况下,您可能希望将gca替换为您想要的轴的更明确的链接,例如handles.axes1。以上假设轴中只有一个图像。

也许你的意思是RC作为指向图像句柄的全局变量 - 我们无法从你到目前为止给出的代码中看出来。我唯一的建议是尽可能避免使用全局变量。