我试图生成在MATLAB下从基本形状“效果”:这个效果叫什么,以及如何使用Matlab实现它?
但我甚至不知道这个过程是如何被调用。假设我有一个包含棕色形状的图像,我想要的是在其外部生成轮廓,当它们变大时会变得更平滑。
有没有这个效果的名称,在MATLAB中做到这一点的函数或从头开始做的算法?
感谢
我试图生成在MATLAB下从基本形状“效果”:这个效果叫什么,以及如何使用Matlab实现它?
但我甚至不知道这个过程是如何被调用。假设我有一个包含棕色形状的图像,我想要的是在其外部生成轮廓,当它们变大时会变得更平滑。
有没有这个效果的名称,在MATLAB中做到这一点的函数或从头开始做的算法?
感谢
我认为你正在寻找bwdist
。
您显示的图像看起来像距离形状边界的距离函数的正面部分。您可以使用aforementioned manual page上的示例在Matlab中轻松执行此操作。
试试这个:
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(但是厚你想要的轮廓是或)不同的扩张元件扩张图像两次,减去从较大的一个小的结果。然后,您可以根据需要为它们着色。
确定这工作得很好,谢谢 – lezebulon