首页 > 技术文章 > 膨胀与腐蚀

asahiLikka 2019-10-21 11:12 原文

膨胀和腐蚀的定义与功能:

膨胀将目标点融合到背景中,向外部扩展。膨胀处理可以将断裂开的目标物进行合并,便于对其整体的提取。

腐蚀与膨胀意义相反,消除连通的边界,使边界向内收缩。腐蚀处理可以将粘连在一起的不同目标物分离,并可以将小的颗粒噪声去除。

膨胀:

例如:
ad0384949c049f780b786aa1d0c2f014.png

算法步骤分析:

  1. 扫描原图,找到一个像素值为0的背景点
  2. 将预先设定好形状和元素的结构元素移到该位置
  3. 判断结构元素是否有覆盖到像素值为1的背景点,如果有则选中的像素点像素值为1,否则为0
  4. 选择下一像素值为0的像素点,重复2,3,直至所有像素点完成
    例如:
    e44d49c4d5d0d1af509da5e8cb38b6c9.png

matlab imdilate膨胀:
matlab函数:imdilate(I,SE);
I:传入的图像
SE:结构元素

A1=imread('resource\Test.PNG');
bw=im2bw(A1);%转换为二值图
bw2=imcomplement(bw);  %黑白对调
B=[ 0,1,0;
    1,1,1;
    0,1,0];
A2=imdilate(bw2,B); %膨胀
A3=imdilate(A2,B);
A4=imdilate(A3,B);

subplot(231),imshow(A1);
title('原始图');

subplot(232),imshow(bw);
title('原始图转化为二值图');

subplot(233),imshow(bw2);
title('二值图黑白对调');

subplot(234),imshow(A2);
title('第一次膨胀处理');

subplot(235),imshow(A3);
title('第二次膨胀处理');

subplot(236),imshow(A3);
title('第三次膨胀处理');

 

结果:
eb7283b34c6f2ed348043c86ca568201.png

腐蚀:

例如:
55100afad0fcb407cc1f135ceaa66485.png

算法步骤分析:

  1. 扫描原图,找到像素值为1的背景点
  2. 将预先设定好形状和元素的结构元素移到该位置
  3. 判断结构元素所覆盖的像素点是否全部为1,如果是则选中的像素点值为1,否则为0
  4. 选择下一像素值为1的像素点,重复2,3,直至所有像素点完成
    22be2feaaf6307bf2d304e1f84c8cc5c.png

matlab imerode腐蚀:
matlab函数:imerode(I,SE);
I:传入的图像
SE:结构元素

A1=imread('resource\imerode.jpg');
bw=im2bw(A1);%转换为二值图
bw2=imcomplement(bw);  %黑白对调
B=[ 0,1,0;
    1,1,1;
    0,1,0];
A2=imerode(bw2,B); %膨胀
A3=imerode(A2,B);
A4=imerode(A3,B);

subplot(231),imshow(A1);
title('原始图');

subplot(232),imshow(bw);
title('原始图转化为二值图');

subplot(233),imshow(bw2);
title('二值图黑白对调');

subplot(234),imshow(A2);
title('第一次腐蚀处理');

subplot(235),imshow(A3);
title('第二次腐蚀处理');

subplot(236),imshow(A3);
title('第三次腐蚀处理');

 

结果:
ef45fb0c2a71d608324c700973d2cfa5.png

灰度形态学的膨胀和腐蚀:

灰度形态学的腐蚀:

灰度形态学的腐蚀使用卷积的操作,用原图像区域减取结构元素,去其中最小值赋予对应原点
假设有以下图像(a)和结构元素(b)
4419f76234919d27e656e5cae2298867.png
以第一个区域为例

[0 0 0;                   [0 1 0;                                      [0 -1 0;
0 4 3;                    1 2 1;                                       -1 2 2;
0 3 5]         -          0 1 0]                  =                   0 2 5]

此时区域的最小元素为-1,则使用-1替代原区域原点4
最终结果如下图。

eafc044d49adc316ffd649f82734a886.png

灰度形态学膨胀:

灰度形态学的腐蚀使用卷积的操作,用原图像区域加上结构元素,去其中最大值赋予对应原点
假设有以下图像(a)和结构元素(b)
c1421c34977b876b5be313e98df477a4.png

以第一个区域为例

[0 0 0;                   [0 1 0;                                      [0 1 0;
0 4 3;                    1 2 1;                                       1 6 4;
0 3 5]         -          0 1 0]                  =                   0 4 5]

此时区域的最大元素为6,则使用6替代原区域原点4
最终结果如下图(图片“与结构元素对应像元相加去最小值”有误,应为取最大值)

0198ba0e4b3bae35f6bd638848bae304.png

参考:
https://www.cnblogs.com/tornadomeet/archive/2012/03/20/2408086.html
https://blog.csdn.net/Chaolei3/article/details/79618602
https://blog.csdn.net/ywxk1314/article/details/81391800
https://blog.csdn.net/ywxk1314/article/details/81391478

推荐阅读