基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。
注意:腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。
注意: 大多数图像,一般相对于背景而言物体的颜色(灰度)更深, 二值化之后物体会成为黑色, 而背景则成为白色, opencv中将物体用黑色(灰度值0)表示, 而背景用白色(灰度值255)表示,但Matlab 在二位图像形态学处理中,默认情况下白色的是前景(灰度值为1或255),黑色的为背景, 因而本章涉及Matlab 的所有程序实例又都遵从Matlab本身的这种前景认定习惯.
实际上, 无论以什么灰度值为前景和背景都只是一种处理上的习惯, 与形态学算法本身无关。例如对于上面两幅图片, 只需要在形态学处理之前先对图像反色就可以在两种认定习惯之间自由切换。
膨胀与腐蚀能实现多种多样的功能,主要如下:
- 消除噪声
- 分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素。
- 寻找图像中的明显的极大值区域或极小值区域
- 求出图像的梯度
1.2 膨胀
膨胀就是求局部最大值的操作,核B与图形卷积,即计算核B覆盖的区域(体现局部)的像素点的最大值,并把这个最大值赋值给参考点指定的像素。这样就会使图像中的高亮区域逐渐增长。
1.3 腐蚀
腐蚀与膨胀是相反的操作,腐蚀是求局部最