膨胀和腐蚀是数字形态学里两个基本的操作。简单的说,膨胀是把亮的区域变大。腐蚀就是把暗的区域变大。
开运算 (Opening)
实现:开运算是通过先对图像腐蚀再膨胀实现的。
作用:1.能够消除小团块物体(比如物体较背景明亮);2.可以消除高于邻近点的孤立点,达到去噪;3.可以平滑物体轮廓、断开较窄的狭颈。
闭运算 (Closing)
实现:闭运算是通过先对图像膨胀再腐蚀实现的。
作用:能够消除小型黑洞(黑色区域),可以消除低于邻近点的孤立点,达到去噪作用,可以平滑物体轮廓、弥合较窄的间断和细长的沟壑,消除小孔洞,填补轮廓线中的断裂。
膨胀函数:
B=imdilate(A,zone);
A是输入的图像,zone是膨胀区域,B是膨胀后的输出。该函数会使zone在A中滑动,再zone区域找找其中的最大值,然后把中心点换成最大值。
A =
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0
zone =
1 1 1
1 1 1
1 1 1
运行B = imdilate(A,zone),则输出如下:
B =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
腐蚀函数:
运行C = imerode(A,zone),则输出如下:
C =
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0