到目前为止我还没有应用到凸壳,但是凸壳算法倒是接触过几个,这里简单写写形态学凸壳。
凸壳的公式如下:
其中
。当该过程收敛时(即当
时),我们另
,则A的凸壳为:
说实话,我刚看到这个公式的时候是懵逼的,但是结合下面的图就很简单理解了。
我们首先有四个不同的element
,我们首先用到第一个
对
(
等于A)做击中击不中变换,然后与A做并集,得到
然后迭代直到
,我们停止迭代,计最终结果为
即上图的
,同理我们用其他的三个element
得到
,最后将这四个D求并集就得到了我们的凸包。
注:用 做击中击不中变换的结果是我们值得注意的,这四个结构元的远点均在其中心处,“×”项表示“不考虑”的条件,即当A中的一个33区域的中心为0时,而在阴影模板元素下的三个像素为1时,就出现了一个模板匹配。出现模板匹配时,这个33区域的0中心将会被选中,这样就填补了本来是0的孔洞区域,然后与A求并,就将A的范围变大了。当这四个模板不能够更新出新的像素时,那么凸包就形成了。
缺点:上述过程的一个明显缺点是凸壳可能超出确保凸性所需的最小尺寸。减少这种影响的一种简单方法是限制生长,以便凸壳不会超过初始点集在水平和垂直方向的尺寸。