紋理特征提取方法:LBP, 灰度共生矩陣

搬運(yùn)自本人 CSDN 博客:《紋理特征提取方法:LBP, 灰度共生矩陣》
注:本文中大量行內(nèi) Latex 公式在簡(jiǎn)書中不支持,如果想要仔細(xì)參閱威沫,請(qǐng)移步上面的 CSDN 博客鏈接。


紋理特征提取方法:LBP, 灰度共生矩陣

在前面的博文《圖像紋理特征總體簡(jiǎn)述》中脂凶,筆者總結(jié)了圖像紋理特征及其分類敲街。在這里筆者對(duì)其中兩種算法介紹并總結(jié)。


參考網(wǎng)址:
《紋理特征提取》
《【紋理特征】LBP 》
《灰度共生矩陣(GLCM)理解》
《灰度共生矩陣的理解》
《圖像的紋理特征之灰度共生矩陣 》

參考論文:
《基于灰度共生矩陣提取紋理特征圖像的研究》——馮建輝
《灰度共生矩陣紋理特征提取的Matlab實(shí)現(xiàn)》——焦蓬蓬


一. LBP

1. 算法簡(jiǎn)介

LBP方法(Local binary patterns, 局部二值模式)是一種用來(lái)描述圖像局部紋理特征的算子绞旅;它的作用是進(jìn)行特征提取摆尝,提取圖像的局部紋理特征。
LBP是一個(gè)計(jì)算機(jī)視覺(jué)中用于圖像特征分類的一個(gè)方法因悲,用于紋理特征提取堕汞。后來(lái)LBP方法與HOG特征分類器與其他機(jī)器學(xué)習(xí)算法聯(lián)合使用。

2. 算法原理

LBP算法的核心思想晃琳,是以某個(gè)像素點(diǎn)為中心讯检,與其鄰域像素點(diǎn)共同計(jì)算。關(guān)于鄰域像素點(diǎn)的選擇方法卫旱,其實(shí)并不唯一:

  • 原始的LBP算子定義的是在3*3的窗口內(nèi)人灼,以窗口中心像素為閾值,將相鄰的8個(gè)像素點(diǎn)灰度值與其進(jìn)行比較顾翼;
  • 后來(lái)的LBP算法也將相鄰8個(gè)像素點(diǎn)的位置改成了環(huán)形鄰域內(nèi)8個(gè)點(diǎn)(也可能是環(huán)形鄰域多個(gè)點(diǎn))投放,進(jìn)行順時(shí)針或逆時(shí)針的比較。

這里選擇環(huán)形鄰域的方法進(jìn)行說(shuō)明:
窗口中心的像素點(diǎn)作為中心适贸,該像素點(diǎn)的像素值作為閾值灸芳。然后將周圍8個(gè)像素點(diǎn)的灰度值與該閾值進(jìn)行比較涝桅,若周圍某像素值大于中心像素值,則該像素點(diǎn)位置被標(biāo)記為1烙样;反之苹支,該像素點(diǎn)標(biāo)記為0。
如此這樣误阻,該窗口的8個(gè)點(diǎn)可以產(chǎn)生8位的無(wú)符號(hào)數(shù)债蜜,這樣就得到了該窗口的LBP值,該值反應(yīng)了該窗口的紋理信息究反。如下圖所示:

傳統(tǒng) LBP 算法

圖中寻定,中心像素點(diǎn)的像素值作為閾值,其值v = 3精耐;周圍鄰域8個(gè)像素值中狼速,有3個(gè)比閾值小的像素點(diǎn)置0,5個(gè)比閾值大的像素點(diǎn)置1卦停。

LBP算法的計(jì)算公式如下:

$$ LBP_{P, R}(x_{c},y_{c}) = \sum_{p=0}^{P-1}s(g_{p} - g_{c})2^p, s(x)=\left{\begin{matrix}1 : x \geq 0 \ 0 : x \leq 0 \end{matrix}\right. $$

3. 算法流程

LBP紋理特征向量向胡,一般以圖像分塊LBP直方圖表示。具體步驟如下:

  • 圖像劃分若干為N × N的圖像子塊(如16 × 16)惊完,計(jì)算每個(gè)子塊中每個(gè)像素的LBP值僵芹;
  • 對(duì)每個(gè)子塊進(jìn)行直方圖統(tǒng)計(jì),得到N × N圖像子塊的直方圖小槐;
  • 對(duì)所有圖像子塊的直方圖進(jìn)行歸一化處理拇派;
  • 連接所有子塊的歸一化直方圖,便得到了整幅圖像的紋理特征凿跳。

得到了整幅圖像的LBP紋理特征后件豌,便可以利用SVM或者其他機(jī)器學(xué)習(xí)算法進(jìn)行分類了。

4. 算法源碼

這兩天筆者將會(huì)對(duì)源碼進(jìn)行測(cè)試封裝控嗜,以后會(huì)上傳到我的GitHub網(wǎng)站上茧彤。

二. 灰度共生矩陣(GLCM)

1. 算法簡(jiǎn)介

灰度共生矩陣法(GLCM, Gray-level co-occurrence matrix),就是通過(guò)計(jì)算灰度圖像得到它的共生矩陣疆栏,然后透過(guò)計(jì)算該共生矩陣得到矩陣的部分特征值曾掂,來(lái)分別代表圖像的某些紋理特征(紋理的定義仍是難點(diǎn))〕斜撸灰度共生矩陣能反映圖像灰度關(guān)于<font color = red>方向遭殉、相鄰間隔石挂、變化幅度等</font>綜合信息博助,它是分析圖像的局部模式和它們排列規(guī)則的基礎(chǔ)。
對(duì)于灰度共生矩陣的理解痹愚,需要明確幾個(gè)概念:方向富岳,偏移量和灰度共生矩陣的階數(shù)蛔糯。

  • 方向:一般計(jì)算過(guò)程會(huì)分別選在幾個(gè)不同的方向來(lái)進(jìn)行,常規(guī)的是水平方向0°窖式,垂直90°蚁飒,以及45°和135°;
  • 步距d:中心像元(在下面的例程中進(jìn)行說(shuō)明)萝喘;
  • 灰度共生矩陣的階數(shù):與灰度圖像灰度值的階數(shù)相同淮逻,即當(dāng)灰度圖像灰度值階數(shù)為N時(shí),灰度共生矩陣為N × N的矩陣阁簸;

2. 算法實(shí)現(xiàn)步驟

(1) 提取灰度圖像

計(jì)算紋理特征第一步爬早,就是將多通道的圖像(一般指RGB圖像)轉(zhuǎn)換為灰度圖像,分別提取出多個(gè)通道的灰度圖像启妹。
紋理特征是一種結(jié)構(gòu)特征筛严,使用不同通道圖像得到的紋理特征都是一樣的,所以可以任意選擇其一饶米。

(2) 灰度級(jí)量化

一般在一幅圖像中的灰度級(jí)有256級(jí)桨啃,從0--255。但在計(jì)算灰度共生矩陣時(shí)我們并不需要256個(gè)灰度級(jí)檬输,且計(jì)算量實(shí)在太大照瘾,所以一般分為8個(gè)灰度級(jí)或16個(gè)灰度級(jí)。
而且當(dāng)分成8個(gè)灰度級(jí)時(shí)丧慈,如果直接將像素點(diǎn)的灰度值除以32取整网杆,會(huì)引起影像清晰度降低,所以進(jìn)行灰度級(jí)壓縮時(shí)伊滋,首先我們會(huì)將圖片進(jìn)行直方圖均衡化處理碳却,增加灰度值的動(dòng)態(tài)范圍,這樣就增加了影像的整體對(duì)比效果笑旺。
注:筆者后文中的例子中昼浦,為了簡(jiǎn)要說(shuō)明,所以灰度等級(jí)簡(jiǎn)單設(shè)置為4筒主。

(3) 計(jì)算特征值的參數(shù)選擇

計(jì)算特征值前关噪,先選擇計(jì)算過(guò)程中的一些參數(shù):

  • 滑動(dòng)窗口尺寸:一般選擇5×5或7×7的滑動(dòng)窗口進(jìn)行計(jì)算特征值;
    • 注:后文筆者選擇了6×6的窗口矩陣乌妙,只是隨意進(jìn)行舉例說(shuō)明使兔,一般還是選維度為5或7的滑動(dòng)窗口矩陣;
  • 步距d:一般選擇d = 1藤韵,即中心像素直接與其相鄰像素點(diǎn)做比較運(yùn)算虐沥;
  • 方向選擇:計(jì)算灰度共生矩陣的方向一般為0°,45°,90°欲险,135°四個(gè)方向镐依;求出四個(gè)方向矩陣的特征值后,可以通過(guò)計(jì)算四個(gè)特征值的平均值作為最終特征值共生矩陣天试;
    • 注:如果選擇其他方向槐壳,則在每個(gè)方向上都會(huì)得到相當(dāng)繁多的紋理特征,不利于使用的效率喜每。

(4) 紋理特征值的計(jì)算與紋理特征影像生成

下面分部且適當(dāng)?shù)氖褂靡恍├诱f(shuō)明計(jì)算過(guò)程:

A. 單個(gè)窗口的灰度共生矩陣計(jì)算

為了達(dá)到簡(jiǎn)單說(shuō)明計(jì)算紋理特征值的目的务唐,筆者此處做簡(jiǎn)要的假設(shè):灰度被分為4階,灰度階從0--3带兜;窗口大小為6 × 6绍哎;
窗口A的灰度矩陣A如下:


窗口A的灰度矩陣A

窗口B的灰度矩陣B如下:


窗口B的灰度矩陣B

此處以左上角元素為坐標(biāo)原點(diǎn),原點(diǎn)記為(1, 1)鞋真;以此為基礎(chǔ)舉例崇堰,第四行第二列的點(diǎn)記為(4, 2);

情景1:d = 1涩咖,求0°方向矩陣A的共生矩陣:
則按照0°方向(即水平方向從左向右海诲,從右向左兩個(gè)方向),統(tǒng)計(jì)矩陣值(1, 2)檩互,則如下圖所示:

0°方向矩陣A的共生矩陣

此時(shí)滿足矩陣值(1, 2)統(tǒng)計(jì)條件的值特幔,共有8個(gè),所以該窗口對(duì)應(yīng)的GLCM統(tǒng)計(jì)矩陣的(1, 2)位置元素的值即為8闸昨。若統(tǒng)計(jì)矩陣值(3, 0)蚯斯,則如下圖所示:
0°方向矩陣A的共生矩陣注解

此時(shí)滿足矩陣值(3, 0)統(tǒng)計(jì)條件的值,共有7個(gè)饵较,所以該窗口對(duì)應(yīng)的GLCM統(tǒng)計(jì)矩陣的(1, 2)位置元素的值即為7拍嵌。又由于此例設(shè)定的灰度級(jí)只有4級(jí),所以灰度共生矩陣GLCM是一個(gè)4×4的矩陣循诉。
最后的GLCM 4 × 4統(tǒng)計(jì)矩陣結(jié)果如下:

$$
P_{A}(d=1, \theta =0^o)=\begin{vmatrix}
0 & 8 & 0 & 7 \
8 & 0 & 8 & 0 \
0 & 8 & 0 & 7 \
7 & 0 & 7 & 0
\end{vmatrix}
$$

情景2:d = 1,求45°方向矩陣A的共生矩陣:
按照情景1茄猫,同理可得此時(shí)的統(tǒng)計(jì)矩陣結(jié)果如下:
$$
P_{A}(d=1, \theta =45^o)=\begin{vmatrix}
12 & 0 & 0 & 0 \
0 & 14 & 0 & 0 \
0 & 0 & 12 & 0 \
0 & 0 & 0 & 12
\end{vmatrix}
$$

情景3:d = 1狈蚤,求0°與45°方向矩陣B的共生矩陣:
與前面同理,可以得到矩陣B的統(tǒng)計(jì)及矩陣結(jié)果如下:
$$
P_{B}(d=1, \theta =0^o)=\begin{vmatrix}
24 & 4 & 0 & 0 \
4 & 8 & 0 & 0 \
0 & 0 & 12 & 2 \
0 & 0 & 2 & 4
\end{vmatrix}
$$

$$
P_{B}(d=1, \theta =45^o)=\begin{vmatrix}
18 & 3 & 3 & 0 \
3 & 6 & 1 & 1 \
3 & 1 & 6 & 1 \
0 & 1 & 1 & 2
\end{vmatrix}
$$

矩陣A, B的其余90°划纽、135°矩陣與上面同理脆侮,所以筆者偷懶略去。

這樣勇劣,我們就已經(jīng)計(jì)算得到了單個(gè)窗口的灰度共生矩陣的各個(gè)方向的矩陣靖避,下面就要用剛才算出的矩陣計(jì)算灰度共生矩陣特征值。
用P表示灰度共生矩陣的歸一化頻率矩陣,其中i, j表示按照某方向同時(shí)出現(xiàn)于兩個(gè)像素的某兩個(gè)級(jí)別的灰度值筋蓖,所以P(i, j)表示滿足這種情況的兩個(gè)像素出現(xiàn)的概率。
以上述情景2中的矩陣為例:
原矩陣為:
$$
P(d=1, \theta =45^o)=\begin{vmatrix}
12 & 0 & 0 & 0 \
0 & 14 & 0 & 0 \
0 & 0 & 12 & 0 \
0 & 0 & 0 & 12
\end{vmatrix}
$$

歸一化后退敦,矩陣形式變?yōu)椋?br> $$
P(d=1, \theta =45^o)=\begin{vmatrix}
12/50 & 0 & 0 & 0 \
0 & 14/50 & 0 & 0 \
0 & 0 & 12/50 & 0 \
0 & 0 & 0 & 12/50
\end{vmatrix}
$$

B. 單個(gè)窗口的灰度共生矩陣特征值的計(jì)算

灰度共生矩陣?yán)碚摰那拜匟aralick等人用灰度共生矩陣提出了14中特征值粘咖,但由于灰度共生矩陣的計(jì)算量很大,所以為了簡(jiǎn)便侈百,我們一般采用四個(gè)最常用的特征來(lái)提取圖像的紋理特征:<font color=red>能量瓮下、對(duì)比度、相關(guān)度钝域、熵</font>讽坏。

a. 能量(角二階距)

$ ASM = \sum_{i} \sum_{j}P(i, j)^2 $
能量是灰度共生矩陣各元素的平方和,又被稱角二階距例证。它是圖像紋理灰度變化均一的度量路呜,反映了圖像灰度分布均勻程度和紋理粗細(xì)程度。

b. 對(duì)比度

$ CON = \sum_{i} \sum_{j} (i-j)^2 P(i,j) $
對(duì)比度是灰度共生矩陣主對(duì)角線附近的慣性矩织咧,它體現(xiàn)矩陣的值如何分布胀葱,反映了圖像的清晰度和紋理溝紋的深淺。

c. 相關(guān)度

$ CORRLN = [\sum_{i} \sum_{j}((ij)P(i,j)) - \mu_{x} \mu_{y}]/ \sigma_{x} \sigma_{y} $
相關(guān)度體現(xiàn)了空間灰度共生矩陣元素在行或列方向上的相似程度笙蒙,反映了圖像局部灰度相關(guān)性抵屿。

d. 熵

$ ENT = - \sum_{i} \sum_{j} P(i,j) \log P(i,j) $
熵體現(xiàn)了圖像紋理的隨機(jī)性。若共生矩陣中所有值都相等捅位,取得最大值轧葛;若共生矩陣中的值不均勻,則其值會(huì)變得很小艇搀。

求出該灰度共生矩陣各個(gè)方向的特征值后尿扯,再對(duì)這些特征值進(jìn)行均值和方差的計(jì)算,這樣處理就消除了方向分量對(duì)紋理特征的影響焰雕。

C. 滑動(dòng)窗口的移動(dòng)

一個(gè)滑動(dòng)窗口計(jì)算結(jié)束后姜胖,該窗口就可以移動(dòng)一個(gè)像素點(diǎn),形成另一個(gè)小窗口圖像淀散,重復(fù)進(jìn)行上一步的計(jì)算右莱,生成新窗口圖像的共生矩陣和紋理特征值;
以此類推档插,滑動(dòng)窗口遍歷完所有的圖像像素點(diǎn)后慢蜓,整個(gè)圖像就形成了一個(gè)由紋理特征值構(gòu)成的一個(gè)紋理特征值矩陣。

之后郭膛,就可以將這個(gè)紋理特征值矩陣轉(zhuǎn)換成紋理特征圖像晨抡。

3. 算法源碼

筆者已經(jīng)對(duì)源碼進(jìn)行測(cè)試了封裝,并上傳到了筆者的GitHub網(wǎng)站上。
GitHub:https://github.com/upcAutoLang/GLCM-OpenCV

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耘柱,一起剝皮案震驚了整個(gè)濱河市如捅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌调煎,老刑警劉巖镜遣,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異士袄,居然都是意外死亡悲关,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門娄柳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寓辱,“玉大人,你說(shuō)我怎么就攤上這事赤拒★ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵挎挖,是天一觀的道長(zhǎng)跳昼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)肋乍,這世上最難降的妖魔是什么鹅颊? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮墓造,結(jié)果婚禮上堪伍,老公的妹妹穿的比我還像新娘。我一直安慰自己觅闽,他們只是感情好帝雇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛉拙,像睡著了一般尸闸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孕锄,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天吮廉,我揣著相機(jī)與錄音,去河邊找鬼畸肆。 笑死宦芦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轴脐。 我是一名探鬼主播调卑,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抡砂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了恬涧?” 一聲冷哼從身側(cè)響起注益,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溯捆,沒(méi)想到半個(gè)月后丑搔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡现使,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年低匙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旷痕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碳锈。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖欺抗,靈堂內(nèi)的尸體忽然破棺而出售碳,到底是詐尸還是另有隱情,我是刑警寧澤绞呈,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布贸人,位于F島的核電站,受9級(jí)特大地震影響佃声,放射性物質(zhì)發(fā)生泄漏艺智。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一圾亏、第九天 我趴在偏房一處隱蔽的房頂上張望十拣。 院中可真熱鬧,春花似錦志鹃、人聲如沸夭问。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缰趋。三九已至,卻和暖如春陕见,著一層夾襖步出監(jiān)牢的瞬間秘血,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工评甜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留直撤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓蜕着,卻偏偏與公主長(zhǎng)得像谋竖,于是被迫代替她去往敵國(guó)和親红柱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容