图像处理:腐蚀,膨胀,开运算及闭运算

文章目录

图像的形态学运算:腐蚀,膨胀,开运算及闭运算

形态学图像处理的基本思想是利用一个称作结构元素的“探针”收集图像的信息.腐蚀,膨胀,开运算及闭运算这些形态学方法可以对图像进行滤波,平滑操作.腐蚀和膨胀可以看作单边滤波器,而开运算和闭运算可以看作双边滤波器.

如果将原图设定为A,探针图像设定为B,则一般情况下B的尺寸远小于A,用B对A进行各种操作.

腐蚀

定义: 设B的原点在左上角,则用B腐蚀A即,B能完全落入A时,B的原点的集合.
作用: 消除A的边界杂点.

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
A =
     0     1     1     1     0     0     0     0
     0     0     1     1     1     0     0     0
     0     0     0     1     1     1     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
>> B = strel('square',2)
B =
Flat STREL object containing 4 neighbors.
 
Neighborhood:
     1     1
     1     1
>> C = imerode(A, B)
C =
     0     0     1     0     0     0     0     0
     0     0     0     1     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0

如上显式,能将B完全包容在A中时,B的原点只可能在A(1,3)和A(2,4),在结果C中也只有这2点的值为1,其余均为0.如下图:

1
2
>> subplot(1,2,1);imshow(A,'notruesize');
>> subplot(1,2,2);imshow(C,'notruesize')

erode

 膨胀

定义: B中有任意点落入A时,B的原点的集合.换句话,B与A交集不为空时B的原点的集合.
作用: 合并图像边缘的背景点到图像中.(图像变粗,变大)
例子: (A,B与上面相同)

1
2
3
4
5
6
7
8
9
10
11
12
>> D = imdilate(A,B)
D =
     0     1     1     1     1     0     0     0
     0     1     1     1     1     1     0     0
     0     0     1     1     1     1     1     0
     0     0     0     1     1     1     1     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
>> subplot(1,2,1);imshow(A,'notruesize');
>> subplot(1,2,2);imshow(D,'notruesize')

结果如下:

dilate

 开运算

定义: 以相同的算子B对图像A进行先腐蚀后膨胀操作(并不能恢复原图像)
作用: 去掉凸角来平滑图像边缘(可以用来分开相连的区域).
例子:

1
2
3
4
5
6
7
8
9
10
11
12
>> E = imopen(A,B)
E =
     0     0     1     1     0     0     0     0
     0     0     1     1     1     0     0     0
     0     0     0     1     1     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
>> subplot(1,2,1);imshow(A,'notruesize');
>> subplot(1,2,2);imshow(E,'notruesize')

结果如下:

open

 闭运算

定义: 以相同的算子B对图像A进行先膨胀后腐蚀操作.
作用: 填充凹角来平滑图像边缘.
例子:

1
2
3
4
5
6
7
8
9
10
11
12
>> F = imclose(A,B)
F =
     0     1     1     1     0     0     0     0
     0     0     1     1     1     0     0     0
     0     0     0     1     1     1     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
>> subplot(1,2,1);imshow(A,'notruesize');
>> subplot(1,2,2);imshow(F,'notruesize')

结果如下:

close

 小结

本文转载的http://52xenos.blogspot.com/2010/02/blog-post.html这篇文章,正在学习这方面的知识,留着以后看!



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/828.html

下一篇文章:

上一篇文章:

6人参与了讨论

  1. 免费部落 说:

    坐个沙发,感觉您的速度比我的快啊!

  2. 免费部落 说:

    这个应该是位图的处理吧!

  3. 垃圾站 说:

    今天签到啦!时间:19:20:08

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

5 + 9 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部