二值形态学

来源:互联网 发布:betterzip mac版 编辑:程序博客网 时间:2024/06/11 23:01

1、膨胀

膨胀是使图像中的目标“生长”或“变粗”的过程。这种特殊的方法和生长程度由一种被称为结构元的形状来控制。结构元的原点必须被明确表明。
把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。用公式表示为:
D(X)={a | Ba↑X}=X⊕B
如图6所示。图6中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。
  同样,如果B不是对称的,X被B膨胀的结果和X被 Bv膨胀的结果不同。
  让我们来看看实际上是怎样进行膨胀运算的。在图7中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点(注意必须是中心)和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点(中心点)就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。
  图像表示

像素表示

实际编程中可以通过腐蚀来达到膨胀的目的。
这里写图片描述
AC代表A的补集,-B表示B关于原点的对称集。

2、腐蚀

把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:
E(X)={a| Ba X}=X B
如图1所示。
图1

图中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。
值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被 Bv腐蚀的结果是一样的。如果B不是对称的,让我们看下图2,就会发现X被B腐蚀的结果和X被 Bv腐蚀的结果不同。
图2

图1和图2都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。
在图3中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。
图3

3、开运算

假定A为输入图像,B为结构元素,利用B对A做开运算,用符号 表示,定义为:
这里写图片描述
所以,开运算实际上是A先被B腐蚀,然后再被B膨胀的结果。开运算通常来消除小对象物、在纤细点处分离物体、平滑较大边界的同时并不明显改变其体积。
这里写图片描述

从图可以看出,开运算具有两个显著的作用:
·利用圆盘可以磨光举行内边缘
·用这里写图片描述可以得到图像的尖角,因此圆盘的圆化作用可以起到低通滤波的作用。

4、闭运算

闭运算是开运算的对偶运算,定义为先做膨胀再做腐蚀。
这里写图片描述

闭运算通常用来填充目标内的细小空洞、连接断开的近邻目标、平滑其边界的同时并不明显改变其面积。用下图描述闭运算的过程及结果。显然,用闭运算对图像的外部做滤波,仅仅磨光了凸向图像内部的边角。
这里写图片描述

二值开运算和闭运算的效果图如下:
这里写图片描述

开运算作用:平滑轮廓;断开细的连接部分;去掉细的突出;去除比结构元小的孤立物。
闭运算作用:平滑轮廓;链接窄的断裂;填满比结构元小的空。

原创粉丝点击