2011-10-27 19 views
1

我试图生成在MATLAB下从基本形状“效果”:这个效果叫什么,以及如何使用Matlab实现它?

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

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

有没有这个效果的名称,在MATLAB中做到这一点的函数或从头开始做的算法?

感谢

回答

3

我认为你正在寻找bwdist

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

+0

确定这工作得很好,谢谢 – lezebulon

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(但是厚你想要的轮廓是或)不同的扩张元件扩张图像两次,减去从较大的一个小的结果。然后,您可以根据需要为它们着色。

相关问题