腐蚀算法和膨胀算法应该放在一起来介绍,毕竟原理几乎是相同的。
腐蚀是指在周围介质作用下产生损耗与破坏的过程,如生锈、腐烂等。而腐蚀算法也类似是一种能够产生损坏,抹去部分像素的算法。
膨胀指当物体受热使粒子运动速度加快,从而占据了额外空间的过程,如面包的发酵过程。而膨胀算法也类似是一种能够扩大有效数据,补全部分像素的算法。
所以这两个算法,一个能够消除部分像素;另一个则是能够补全部分像素。以3×3窗口的腐蚀、膨胀算法为例,其示意图,如图5.37所示。图5.37(a)为原图;图5.37(b)为腐蚀算法后的结果,原先零星及边缘的像素消除了;图5.37(c)为膨胀算法后的结果,原先零星及边缘的像素扩张了。
图5.37 腐蚀算法与膨胀算法示意图
腐蚀算法和膨胀算法的计算公式如下:
腐蚀算法 P =P1& P2 & P3& P4 & P5 & P6 & P7 & P8 & P9
膨胀算法 P =P1|P2|P3|P4|P5|P6|P7|P8|P9
腐蚀算法在3×3窗口内,只要有1个像素不是1,就在与操作后腐蚀成0,可以采用与操作实现;膨胀算法只要有1个1就膨胀成9个有效像素,即用或操作实现。腐蚀算法和膨胀算法是二值化、边缘检测算法后的二次优化操作,两者结合具有能够腐蚀脏点,又保留重要像素的作用。