【图像数学形态学处理】膨胀与腐蚀运算


图像数学形态学处理,是以形态为基础对图像进行分析的数学工具,它用具有一定形态的结构元素,度量和提取图像中的对应形状,从而达到对图像分析和识别的目的。
其中腐蚀与膨胀是形态学处理的两个基本运算,许多形态学算法都是在这两种运算的基础上进行拓展的。
膨胀和腐蚀运算的效果实际上互为“相反”,如果说膨胀运算的效果是将目标物体变得更加饱满,那么腐蚀运算就是将目标物体变得更加细小。

膨胀运算(dilation)

定义

A被B膨胀
集合A与B,若满足上式,则称A被B膨胀。
也就是对B的反射进行平移,使之与A的交集不为空的点集合。
膨胀图解
如上图所示,设A,B均为正方形,则其反射图形不变。B的反射集合A集合在A集合的四个角处都有3/4的点与A的交集为空,若要保证所有交集都不为空,则A必膨胀至蓝色阴影面积。称A被B膨胀。

应用说明

膨胀运算就是将与物体接触所有背景合并到该物体中,使边界向外扩张的过程。因此,膨胀运算常用来填补物体中的空洞及消除目标物体中的小颗粒噪声。如在处理一张字迹不清的图片时,可以用膨胀运算填补字迹的空洞,从而使字迹更加清晰。

腐蚀运算(erosion)

定义

A被B腐蚀
集合A与B,若满足上式,则称A被B腐蚀。
也就是将B平移z后,集合被包含在A的点的集合。
腐蚀图解
如上图所示,设A,B均为正方形。B集合平移z单位后的集合在A集合的四角都有3/4的点不被A集合包含。则A必缩小至紫色阴影面积。称A被B腐蚀。

应用说明

腐蚀运算是一种消除边界点,使边界点向内部收缩的过程。因此,腐蚀运算常用来消除图像中一些小且意义的物体;使用腐蚀运算消除图像的背景部分,也可以产生滤波器的效果

图像形态学二值化处理运算实现

二值图像的逻辑运算

设集合A与B,其逻辑运算包括并集、交集、补集。
其中膨胀运算为二值图像的逻辑运算中的或运算,而腐蚀运算则为与运算。
二值图像的逻辑运算

形态学运算

结构元素是经过特殊定义的邻域,而形态学运算实际也是邻域运算。在每个像素位置上,结构元素与二值图像对应的区域进行特定的逻辑运算,逻辑运算的结果为输出图像的相应像素取值。

膨胀与腐蚀运算的编程实现

腐蚀运算

	for (rept = 0;rept < 3;rept++)  //设置腐蚀次数
	{
    
    
		for (i = 1;i < h - 1;i++)
		{
    
    
			for (j = 1;j < w - 1;j++)
			{
    
    
				if (image[i * w + j] == 255)   //找到一个图形点
				{
    
    
					flag = 0;
					for (m = -1;m < 2;m++)
					{
    
    
						for (n = -1;n < 2;n++)
						{
    
    
							if (image[(i + m) * w + j + n] == 0)
							{
    
    
								flag++;
								break;
							}
						}
					}

					if (flag > 3)   //该邻域内包含有3个背景点
						outImg[i * w + j] = 0;
				}

			}
		}
	}

编程具体思路为:图形点在3×3邻域有若干个背景点,则该点设为背景点,该点像素设为0。
腐蚀运算效果

膨胀运算

膨胀运算的编程思路与上述“相反”:当背景在3×3邻域内有若干个图形时,设该点为图形点,该点像素设为255。
编程代码与上述基本相同,改一些参数即可。
膨胀运算效果
W.By Xyq

猜你喜欢

转载自blog.csdn.net/Carry_qing/article/details/114233895