在MATLAB中绘制图像上的椭圆



我正在尝试在图像堆栈(GUI)上创建一个感兴趣的二进制区域。以下是目前为止的内容:

% Initalize lesion mask
LesionMask = zeros(size(handles.ImageOne));
% Create an ellipse for roi analysis
Lesion = imellipse(handles.axes1);
% Save roi to 3D binary mask
LesionMask(:,:,handles.CurrentSlice) = Lesion.createMask();
boundary = bwboundaries(LesionMask(:,:,handles.CurrentSlice))

现在我想在我的图像上覆盖边界,特别是,我想让它在我穿过图像堆栈时保持不变。

简而言之,我想在我的图像上绘制椭圆的边缘。

谢谢!

如果将它添加到您的代码末尾,可能会对您有用-

hold on
for k = 1:numel(boundary)
    plot(boundary{k}(:,2), boundary{k}(:,1), 'r', 'Linewidth', 3) %// Red border
end

灵感来自这个博客

如果您想保存图像的边缘以供以后使用,请尝试-

[M,N,C] = size(handles.ImageOne)
t1 = cell2mat(boundary);
ind1 = sub2ind([M N],t1(:,1),t1(:,2));
ind2 = bsxfun(@plus,ind1,[0:C-1].*(M*N));
handles.ImageOne(ind2)=0; %// Creates a black border

相关内容

  • 没有找到相关文章

最新更新