形态学之凸壳

到目前为止我还没有应用到凸壳,但是凸壳算法倒是接触过几个,这里简单写写形态学凸壳。

凸壳的公式如下:
X k i = ( X k 1 B i ) A i = 1 , 2 , 3 , 4 k = 1 , 2 , 3... X_k^i=(X_{k-1}\otimes B^i)\cup A \quad i=1,2,3,4 \quad k=1,2,3...
其中 X 0 i = A X_0^i=A 。当该过程收敛时(即当 X k i = X k 1 i X_k^i=X_{k-1}^i 时),我们另 D i = X k i D^i=X_k^i ,则A的凸壳为:
C ( A ) = i 1 4 D i C(A)=\cup^4_{i-1}D^i

说实话,我刚看到这个公式的时候是懵逼的,但是结合下面的图就很简单理解了。
在这里插入图片描述
我们首先有四个不同的element B i B_i ,我们首先用到第一个 B 1 B_1 X 0 1 X_0^1 ( X 0 1 X_0^1 等于A)做击中击不中变换,然后与A做并集,得到 X 1 1 X_1^1 然后迭代直到 X k i = X k 1 i X_k^i=X_{k-1}^i ,我们停止迭代,计最终结果为 D 1 D_1 即上图的 X 4 1 X_4^1 ,同理我们用其他的三个element B i B_i 得到 D 2 , D 3 , D 4 D_2,D_3,D_4 ,最后将这四个D求并集就得到了我们的凸包。

注:用 B i B_i 做击中击不中变换的结果是我们值得注意的,这四个结构元的远点均在其中心处,“×”项表示“不考虑”的条件,即当A中的一个33区域的中心为0时,而在阴影模板元素下的三个像素为1时,就出现了一个模板匹配。出现模板匹配时,这个33区域的0中心将会被选中,这样就填补了本来是0的孔洞区域,然后与A求并,就将A的范围变大了。当这四个模板不能够更新出新的像素时,那么凸包就形成了。

缺点:上述过程的一个明显缺点是凸壳可能超出确保凸性所需的最小尺寸。减少这种影响的一种简单方法是限制生长,以便凸壳不会超过初始点集在水平和垂直方向的尺寸。

猜你喜欢

转载自blog.csdn.net/Du_Shuang/article/details/82959642
今日推荐