这个效果是什么以及如何使用Matlab实现它?

时间:2011-10-27 21:12:48

标签: image matlab image-processing

我试图从MATLAB中的基本形状生成以下“效果”:

http://i.imgur.com/DkLVp.png

但我甚至不知道如何调用此过程。假设我有一个包含棕色形状的图像,我想要的是在它外部生成轮廓,随着它们变大,它会变得更加平滑。

是否有这个效果的名称,在MATLAB中执行此操作的函数或从头开始执行此操作的算法?

感谢

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找bwdist

您正在显示的图像看起来像是距您的形状边界的距离函数的正面部分。您可以使用aforementioned manual page上的示例在Matlab中轻松执行此操作。

答案 1 :(得分:2)

试试这个:

I = imread('brown_image.png');
I_bw = (rgb2gray(I) > 0);   % or whatever, just so I_bw is 1 in the 'brown' region
r = 10;
se1 = strel('disk', r);
se2 = strel('disk', r-1);
imshow(imdilate(I_bw, se1) - imdilate(I_bw, se2))

需要图像处理工具箱,但基本思想是使用相差1的膨胀元素(或者你想要轮廓的厚度)将图像扩大两倍,并从较大的一个中减去较小的一个的结果。然后,您可以根据需要为它们着色。