按操作对象的不同,形态学操作可分为二值形态学和灰度形态学。但在算法实现上,大部分情况二者是可以兼容的,MATLAB和OpenCV的膨胀、腐蚀、开闭等函数对二值和灰度都是一套。
1. 二值图像形态学
1.1 基础操作
1)腐蚀
集合B对集合A的腐蚀:
其中z表示坐标系,A^c为A的补集
OpenCV的公式(灰度腐蚀也一样)更直观:
考虑B中非0值(0值为无关点)对应位置下的所有A点,取其最小值为anchor位置的腐蚀结果(对于二值图像,只要A某个位置为0则腐蚀结果为0)。显然,腐蚀操作会缩小前景。
2)膨胀
集合B对集合A的膨胀:
OpenCV的公式(灰度膨胀也一样):
考虑B中非0值(0值为无关点)对应位置下的所有A点,取其最大值为anchor位置的膨胀结果(对于二值图像,只要A某个位置为1则膨胀结果为1)。显然,膨胀操作会扩大前景。