圖像二值化的目的是最大限度的將圖象中感興趣的部分保留下來,在很多情況下,也是進(jìn)行圖像分析、特征提取與模式識(shí)別之前的必要的圖像預(yù)處理過程。這個(gè)看似簡(jiǎn)單的問題,在過去的四十年里受到國(guó)內(nèi)外學(xué)者的廣泛關(guān)注,產(chǎn)生了數(shù)以百計(jì)的閾值選取方法,但如同其他圖像分割算法一樣,沒有一個(gè)現(xiàn)有方法對(duì)各種各樣的圖像都能得到令人滿意的結(jié)果。
創(chuàng)新互聯(lián)主營(yíng)開福網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),開福h5微信小程序開發(fā)搭建,開福網(wǎng)站營(yíng)銷推廣歡迎開福等地區(qū)企業(yè)咨詢
本文針對(duì)幾種經(jīng)典而常用的二值發(fā)放進(jìn)行了簡(jiǎn)單的討論并給出了其vb.net 實(shí)現(xiàn)。
1、P-Tile法
Doyle于1962年提出的P-Tile (即P分位數(shù)法)可以說是最古老的一種閾值選取方法。該方法根據(jù)先驗(yàn)概率來設(shè)定閾值,使得二值化后的目標(biāo)或背景像素比例等于先驗(yàn)概率,該方法簡(jiǎn)單高效,但是對(duì)于先驗(yàn)概率難于估計(jì)的圖像卻無能為力。
2、OTSU 算法(大津法)
OSTU算法可以說是自適應(yīng)計(jì)算單閾值(用來轉(zhuǎn)換灰度圖像為二值圖像)的簡(jiǎn)單高效方法。1978 OTSU年提出的最大類間方差法以其計(jì)算簡(jiǎn)單、穩(wěn)定有效,一直廣為使用。
3、迭代法(最佳閥值法)
(1). 求出圖象的最大灰度值和最小灰度值,分別記為Zl和Zk,令初始閾值為:
(2). 根據(jù)閾值TK將圖象分割為前景和背景,分別求出兩者的平均灰度值Z0和ZB:
式中,Z(i,j)是圖像上(i,j)點(diǎn)的象素值,N(i,j)是(i,j)點(diǎn)的權(quán)值,一般取1。
(3). 若TK=TK+1,則所得即為閾值,否則轉(zhuǎn)2,迭代計(jì)算。
4、一維最大熵閾值法
它的思想是統(tǒng)計(jì)圖像中每一個(gè)灰度級(jí)出現(xiàn)的概率 ,計(jì)算該灰度級(jí)的熵 ,假設(shè)以灰度級(jí)T分割圖像,圖像中低于T灰度級(jí)的像素點(diǎn)構(gòu)成目標(biāo)物體(O),高于灰度級(jí)T的像素點(diǎn)構(gòu)成背景(B),那么各個(gè)灰度級(jí)在本區(qū)的分布概率為:
O區(qū): i=1,2……,t
B區(qū): i=t+1,t+2……L-1
上式中的 ,這樣對(duì)于數(shù)字圖像中的目標(biāo)和背景區(qū)域的熵分別為:
對(duì)圖像中的每一個(gè)灰度級(jí)分別求取W=H0 +HB,選取使W最大的灰度級(jí)作為分割圖像的閾值,這就是一維最大熵閾值圖像分割法。
VB的運(yùn)算順序是:先乘除、后加減,有括號(hào)的先算括號(hào)內(nèi),有負(fù)號(hào)的先算負(fù)號(hào)。
請(qǐng)你比較一下這個(gè)運(yùn)算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
這樣就會(huì)發(fā)現(xiàn),你的代碼中括號(hào)的位置錯(cuò)了。
正確的應(yīng)該是: Math.Sqrt((n + 1) / n - 1)
首先vb.net是一種編程語(yǔ)言,它自己是沒有的。
但vb.net與c#、vc++.net等其它編程語(yǔ)言共用一個(gè)公共類庫(kù)(叫框架類庫(kù)),這個(gè)類庫(kù)在命名空間System中提供了一個(gè)類叫Math(Public NotInheritable Class Math)。它為三角函數(shù)、對(duì)數(shù)函數(shù)和其他通用數(shù)學(xué)函數(shù)提供了常數(shù)和靜態(tài)方法,其中就包括Max。