形态学之孔洞填充

说实话,我第一次看到这只是明白了它的原理,但是对它的作用并不是很了解,在做过一些图像处理后,终于明白了它的重要之处,这里重新将其作复习,并写在这里,方便自己以后复习(不用翻书,翻书真的很麻烦)
孔洞填充的公式: X k = ( X k 1 B ) A c k = 1 , 2 , 3... X_k=(X_{k-1}\oplus B)\cap A^c \qquad k=1,2,3...
其中 X 0 X_0 是一副全黑的图像,但在孔洞的地方有一个白点(万花丛中一点红)。
乍看,确实很难理解这个公式,等我慢慢道来:
在这里插入图片描述
我们要对A图进行孔洞填充,首先求出A的补集作为备用,然后所用到的element B如上图c所示。首先我们构建 X 0 X_0 一副全黑图像加上孔洞中的一点白作为初始图像,然后用B对 X 0 X_0 进行膨胀,结果膨胀的结果超过了孔洞的大小,于是我们用我们之前构造的 A c A^c 对其求交集将其结果限制在孔洞内(由于我们的element是一个四连通元素,每一次膨胀其边界不会超出一个像素点,而由于 A c A^c 的四周都是一个像素宽的沟壑,所以求交集刚好能限制膨胀过界的像素)。然后迭代,直到 x k 1 x_{k-1} x k x_{k} 相同没变化。最后得到 X 8 X_8 孔洞的填充图像,最后与原图像求并集刚好就把孔洞填充了。
使用例子如下:

在这里插入图片描述

提问:为什么element 不用八连通?
如果用八连通, A c A^c 将无法成功限制膨胀的溢出和越界。