把结构元素B平移a后得到Ba,若Ba包含于X,记下a点,所有满足上述条件的a点组成的集合称作X被B腐蚀(Erosion)的结果。数学表达式为:
如图3-32所示,图中X是被处理的对象,B是对称的结构元素,即Bν=B,对于任意一个在阴影部分的点a,Ba包含于X,所以X被B腐蚀的结果就是阴影部分。阴影部分在X的范围之内,且比X小,就像X被剥掉了一层似的,故将此运算称为腐蚀。由于B是对称的,所以X被B腐蚀的结果和X被Bν腐蚀的结果是一样的。如果B不是对称的,如图3-33所示,X被B腐蚀的结果和X被ν腐蚀的结果是不同的。
图3-32 结构元素对称的腐蚀运算示意图
图3-33 结构元素非对称的腐蚀运算示意图
图3-34是实际中腐蚀运算的过程,左边是被处理的图像X(二值图像,1是目标,0是背景),中间是结构元素B。用B的中心点与X中的1点逐一比对,如果B上的所有点都在X的范围内,则该点保留,否则将其去掉。图3-34c是腐蚀后的结果,可以看出它仍在原来X的范围内,且比X包含的1点要少,就像X被腐蚀掉了一层。
如果腐蚀时所用的结构元素如图3-35a所示,即为水平腐蚀,其具体实现步骤如下:
图3-34 腐蚀运算示例
a)X b)B c)X
B
1)获得原二值图像(背景为白,物体为黑)的首地址及图像的宽和高。
2)开辟一块内存缓冲区,并初始化为255。
3)由于使用1×3的结构元素,为防越界不处理最左边和最右边的两列像素,而从第2行第2列开始,将像素灰度值赋为0,判断该像素的前一点和后一点中是否有背景点,有则
将检查的像素灰度值赋为255,否则保持不变。并将结果暂存在内存缓冲区中。
4)循环步骤3),直到处理完原图的全部像素。
5)输出结果。
如果腐蚀时所用的结构元素如图3-35b所示,即为垂直腐蚀,其具体实现步骤如下:(https://www.xing528.com)
1)获得原二值图像(背景为白,物体为黑)的首地址及图像的宽和高。
2)开辟一块内存缓冲区,并初始化为255。
3)由于使用3×1的结构元素,为防越界,不处理最上和最下的两行像素,而从第2行第2列开始,将像素灰度值赋为0,判断该像素的上一点和下一点中是否有背景点,有则将检查的像素灰度值赋为255,否则保持不变。并将结果暂存在内存缓冲区中。
4)循环步骤3),直到处理完原图的全部像素。
5)输出结果。
如果腐蚀时所用的结构元素如图3-35C所示,即为全方向腐蚀,其具体实现步骤如下:
图3-35 腐蚀时所用的结构元素
a)水平腐蚀所用的结构元素 b)垂直腐蚀所用的结构元素 c)全方向腐蚀所用的结构元素
1)获得原二值图像(背景为白,物体为黑)的首地址及图像的宽和高。
2)开辟一块内存缓冲区,并初始化为255。
3)定义一个一维数组
,用来存储3×3的结构元素。
4)为防越界,不处理最左、最右、最上和最下四边的像素,而从第2行第2列开始,将像素灰度值赋为0,利用结构元素数组判断该像素的前一点、后一点、上一点、下一点这四点(即数组中除中心点外,四个为0的位置,也就是其4-邻域)中是否有背景点,有则将检查的像素灰度值赋为255,否则保持不变。并将结果暂存在内存缓冲区中。这里也可以定义不同形状的结构元素B来进行不同的腐蚀,但处理方法都是检查B中的0所对应的像素是否全部为物体(即为0),是则保留该点,否则置为255。
5)循环步骤4),直到处理完原图的全部像素。
6)输出结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
