使用活动轮廓时出错:
???未定义的函数或方法'activecontour'用于输入 “单一”类型的参数。
==>中的错误114处的Segmentasi> threshold_Callback final = activecontour(image2,mask,100);
image1 = handles.citra1;
level=0.008;
bw = edge(image1,'Canny');
axes(handles.axes2);
imshow(bw,[]);
%active contour
image2 = bwdist(~bw);
mask = zeros(size(image2));
mask(25:end-25,25:end-25) = 1;
final = activecontour(image2,mask , 100);
axes(handles.axes5)
imshow(final,[]);
handles.data3 = final;
guidata(hObject,handles);
我使用的是dicom文件中的图像(矢状图像)
答案 0 :(得分:2)
问题是bwdist
函数的输出是矩阵,activecontour
函数的输入是灰度图像。因此,您需要在使用之前将矩阵转换为灰度图像。这是使用名为mat2gray
的函数完成的。为此,请在使用bwdist
后应用mat2gray
,如下所示:
image2 = mat2gray(bwdist(~bw));
然后其余的代码工作。查看我的简单示例:
bw = zeros(200,200);
bw(50,50) = 1;
bw(50,150) = 1;
bw(150,50) = 1;
D1 = bwdist(bw);
D2 = mat2gray(D1);
mask = zeros(size(D2));
mask(25:end-25,25:end-25) = 1;
final = activecontour(D2,mask,100);
subplot(1,3,1);imshow(bw)
subplot(1,3,2);imshow(mat2gray(D1))
subplot(1,3,3);imshow(final,[]);