基于模糊集理論的一種圖像二值化算法_第1頁(yè)
基于模糊集理論的一種圖像二值化算法_第2頁(yè)
基于模糊集理論的一種圖像二值化算法_第3頁(yè)
基于模糊集理論的一種圖像二值化算法_第4頁(yè)
基于模糊集理論的一種圖像二值化算法_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于模糊集理論的一種圖像二值化算法的原理、實(shí)現(xiàn)效果及代碼這是篇很古老的論文中的算法,發(fā)表與1994年,是清華大學(xué)黃良凱(Liang-kai Huang) 所寫(xiě),因此國(guó)外一些論文里和代碼里稱(chēng)之為Huang's fuzzy thresholding method。雖然古老也很簡(jiǎn)單,但是其算法的原理還是值得學(xué)習(xí)的。     該論文的原文可從此處下載: Image thresholding by minimizing the measure of fuzziness。     該論文結(jié)合了當(dāng)時(shí)處于研究熱潮

2、的模糊集理論,提出了一種具有較好效果的圖像二值化算法,本文主要是對(duì)其進(jìn)行簡(jiǎn)單的翻譯和注釋?zhuān)⑻峁┝藴y(cè)試代碼。一、模糊集及其隸屬度函數(shù)     首先,我們假定X代表一副大小為M×N的具有L個(gè)色階的灰度圖像,而xmn代表圖像X中點(diǎn)(m,n)處的像素灰度值,定義x(xmn)表示該點(diǎn)具有某種屬性的隸屬度值,也就是說(shuō)我們定義了一個(gè)從圖像X映射到0,1區(qū)間的模糊子集,用專(zhuān)業(yè)的模糊集表達(dá),即有:              

3、0;                               其中0x(xmn)1,m=0,1,.M-1,n=0,1,.N-1。對(duì)于二值化來(lái)說(shuō),每個(gè)像素對(duì)于其所屬的類(lèi)別(前景或背景)都應(yīng)該有很相近的關(guān)系,因此,我們可以這種關(guān)系來(lái)表示x(xmn)的值。     

4、60; 定義h(g)表示圖像中具有灰度級(jí)g的像素的個(gè)數(shù),對(duì)于一個(gè)給定的閾值t,背景和前景各自色階值的平均值0和1可用下式表示:                                       

5、60;                                       上述0和1,可以看成是指定閾值t所對(duì)應(yīng)的前景和背景的目標(biāo)值,而圖像X中某一點(diǎn)和其所述的區(qū)域之間的關(guān)系,在直覺(jué)上應(yīng)該和該點(diǎn)的色階值與所屬區(qū)域的目標(biāo)值之間的差異

6、相關(guān)。因此,對(duì)于點(diǎn)(m,n),我們提出如下的隸屬度定義函數(shù):         其中C是一個(gè)常數(shù),該常數(shù)使得0.5x(xmn)1。因此,對(duì)于一個(gè)給定的閾值t,圖像中任何一個(gè)像素要么屬于背景,要么屬于前景,因此,每個(gè)像素的隸屬度不應(yīng)小于0.5。     C值在實(shí)際的編程中,可以用圖像的最大灰度值減去最小灰度值來(lái)表達(dá),即 C=gmax-gmin;二、模糊度的度量及取閾值的原則     模糊度表示了一個(gè)模糊集的模糊程度,有好幾種度量方

7、式已經(jīng)被提及了,本文僅僅使用了香農(nóng)熵函數(shù)來(lái)度量模糊度。     基于香農(nóng)熵函數(shù),一個(gè)模糊集A的熵定義為:             其中香農(nóng)函數(shù):            擴(kuò)展到2維的圖像,圖像X的熵可以表達(dá)為:     因?yàn)榛叶葓D像至多只有L個(gè)色階,因此使用直方圖式(7)可進(jìn)一步寫(xiě)成:   

8、           可以證明式(6)在區(qū)間0,0.5之間是單調(diào)遞增而在0.5,1之間是單調(diào)遞減的,并且E(X)具有以下屬性:     (1)0E(X)1      (2)如果x(xmn)=0或者x(xmn)=1時(shí),E(X)具有最小值0,在本文中x(xmn)只可能為1,此時(shí)分類(lèi)具有最好的明確性。     (3)當(dāng)x(xmn)=0.5,E(X)獲得最大值1,此時(shí)的分類(lèi)具有最大的不明確性。&

9、#160;    那么對(duì)于圖像X,我們確定最好的閾值t的原則就是:對(duì)于所有的可能的閾值t,取香農(nóng)熵值最小時(shí)的那個(gè)t為最終的分割閾值。三、編程中的技巧     有了上述原理,其實(shí)編程也是件很容易的事情了,你可以按照你的想法去做,不過(guò)作者論文中的闡述會(huì)讓代碼寫(xiě)起來(lái)更清晰、更有效。     首先,為了表達(dá)方便,我們定義如下一些表達(dá)式:             根據(jù)上述表達(dá)式,可以知道

10、S(L-1)及W(L-1)對(duì)于一副圖像來(lái)說(shuō)是個(gè)常量,其中S(L-1)明顯就是像素的總個(gè)數(shù)。我們的算法步驟如下:     (1)、計(jì)算S(L-1)、W(L-1),設(shè)置初始閾值t=gmin,令S(t-1)=0、W(t-1)=0;     (2)、計(jì)算下面算式:                     稍微有點(diǎn)數(shù)學(xué)基礎(chǔ)的人都

11、應(yīng)該能看懂上述算式的推導(dǎo)原理。       根據(jù)式(2)和式(3),可以知道背景和前景的區(qū)域的平均灰度值為:       上式中int表示取整操作。 (3)根據(jù)式(4)及式(11)計(jì)算圖像的模糊度; (4)令t=t+1,然后重新執(zhí)行步驟2,直到t=gmax-1; (5)找到整個(gè)過(guò)程中的最小模糊度值對(duì)應(yīng)的閾值t,并作為最佳的分割閾值。 為了稍微加快點(diǎn)速度,上述式4中的計(jì)算可以在步驟1中用一查找表實(shí)現(xiàn)。   &

12、#160;四、參考代碼:public static int GetHuangFuzzyThreshold(int HistGram) int X, Y; int First, Last; int Threshold = -1; double BestEntropy = Double.MaxValue, Entropy; / 找到第一個(gè)和最后一個(gè)非0的色階值 for (First = 0; First < HistGram.Length && HistGramFirst = 0; First+) ; for (Last = HistGram.Length - 1; Last

13、 > First && HistGramLast = 0; Last-) ; if (First = Last) return First; / 圖像中只有一個(gè)顏色 if (First + 1 = Last) return First; / 圖像中只有二個(gè)顏色 / 計(jì)算累計(jì)直方圖以及對(duì)應(yīng)的帶權(quán)重的累計(jì)直方圖 int S = new intLast + 1; int W = new intLast + 1; / 對(duì)于特大圖,此數(shù)組的保存數(shù)據(jù)可能會(huì)超出int的表示范圍,可以考慮用long類(lèi)型來(lái)代替 S0 = HistGram0; for (Y = First > 1 ?

14、 First : 1; Y <= Last; Y+) SY = SY - 1 + HistGramY; WY = WY - 1 + Y * HistGramY; / 建立公式(4)及(6)所用的查找表 double Smu = new doubleLast + 1 - First; for (Y = 1; Y < Smu.Length; Y+) double mu = 1 / (1 + (double)Y / (Last - First); / 公式(4) SmuY = -mu * Math.Log(mu) - (1 - mu) * Math.Log(1 - mu); / 公式(6

15、) / 迭代計(jì)算最佳閾值 for (Y = First; Y <= Last; Y+) Entropy = 0; int mu = (int)Math.Round(double)WY / SY); / 公式17 for (X = First; X <= Y; X+) Entropy += SmuMath.Abs(X - mu) * HistGramX; mu = (int)Math.Round(double)(WLast - WY) / (SLast - SY); / 公式18 for (X = Y + 1; X <= Last; X+) Entropy += SmuMath.Abs(X - mu) * HistGramX; / 公式8 if (BestEntropy > Entropy) BestEntropy = Entropy; / 取最小熵處為最佳閾值 Thresh

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論