策略模式在圖像分割中的應(yīng)用
7)如果子結(jié)點(diǎn)ni以標(biāo)記為OPEN或CL0SE,根據(jù)t’(ni)=min[t(ni),t(n)+c(n,ni)]更新它的值。將其t’值減少的CLOSE子結(jié)點(diǎn)記為OPEN,并將原指向所有其t’值減少的子結(jié)點(diǎn)的指針重指向n。返回步驟2)。
2.3 改進(jìn)的直方圖凹面分析法
圖像的灰度直方圖是圖像各象素灰度值的一種統(tǒng)計(jì)度量。許多的閾值選取方法就是根據(jù)直方圖來進(jìn)行的。對含有目標(biāo)和背景兩類區(qū)域的圖像,其直方圖并不一定總是呈現(xiàn)雙峰形式。例如當(dāng)目標(biāo)和背景區(qū)域的主要灰度比較接近而部分重疊時(shí),其間的谷可能不存在。又如當(dāng)圖像中目標(biāo)和背景面積相差較大時(shí),直方圖的一個(gè)峰會淹沒在另一個(gè)峰旁邊的緩坡里,直方圖具體就是把直方圖看作平面上的區(qū)域,計(jì)算其凸包并求取其最大的凸殘差,以對應(yīng)最大凸殘差的灰度值作為閾值來分割圖像。這里最大的凸殘差是用一種稱為凹性測度的指標(biāo)來衡量的。與一般方法不同,這里要求凸殘差的計(jì)算是沿與灰度垂直的直線進(jìn)行的。
改進(jìn)的直方圖凹面分析法就是先將直方圖函數(shù)取對數(shù),計(jì)算指數(shù)凸包,然后借助凹凸性分析確定閾值。
2.4 分裂,合并和聚集法
區(qū)域生長方法將圖像以象素為基本單位來進(jìn)行操作,基于區(qū)域灰度差的方法主要有如下步驟:
1)對圖像進(jìn)行逐行掃描,找出尚沒有歸屬的象素;
2)以該象素為中心檢查它的鄰域象素,即將鄰域中的象素逐個(gè)與它比較,如果灰度差小于預(yù)先確定的閾值,將它們合并;
3)以新合并的象素為中心,返回到步驟2),檢查新象素的鄰域,直到區(qū)域不能進(jìn)一步擴(kuò)張;
4)返回到步驟1),繼續(xù)掃描直到不能發(fā)現(xiàn)沒有歸屬的象素,則結(jié)束整個(gè)生長過程。本文引用地址:http://www.ex-cimer.com/article/188734.htm
3 Strategy模式的應(yīng)用
圖像分割的主要控制對象為閾值,為使閾值選取算法的選擇具有更大的靈活性,引入Strategy模式,把不同的閾值選取算法分別封裝起來,并使它們可以相互替換,這樣不但可以在不同的環(huán)境條件下靈活地采用相應(yīng)的閾值選取算法,而且在將來有更好的閾值算法出現(xiàn)時(shí)能夠方便地對系統(tǒng)進(jìn)行改進(jìn)和擴(kuò)展。實(shí)現(xiàn)Strategy模式的類圖如圖l所示。
圖1中的TaskControl類包含一個(gè)ControlStrategy接口成員controlStrategy,因此Controller類的對象可以依靠其實(shí)現(xiàn)ControlStrategy接口的成員controlStrategy的多態(tài)性來實(shí)現(xiàn)不同的閾值選取算法。當(dāng)有更好的閾值選取算法出現(xiàn)時(shí),只需添加一個(gè)實(shí)現(xiàn)ControlStrategy接口的類就可以方便地更新圖像分割系統(tǒng)。并且TaskControl類擁有設(shè)置其成員controlStrategy的功能,使得系統(tǒng)可以在運(yùn)行時(shí)更換不同的算法,提高了系統(tǒng)的靈活性。
4 結(jié)論
通過Strategy模式,可以將不同的閾值選取方法封裝起來,使圖像分割系統(tǒng)不再局限于特定場景、一個(gè)閾值選取算法,對于不同的場景,可以選取不同的算法,實(shí)用的范圍更加的廣泛。
評論