0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

灰度共生矩陣(GLCM)基本原理

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2022-08-14 11:53 ? 次閱讀

灰度共生矩陣

灰度共生矩陣(Gray Level CO-Occurrence Matrix-GLCM)是圖像特征分析與提取的重要方法之一,在紋理分析、特征分類、圖像質(zhì)量評價(jià)燈方面都有很重要的應(yīng)用,其基本原理圖示如下:

c1e45a22-1b0f-11ed-ba43-dac502259ad0.png

左側(cè)是一個(gè)圖像,可以看出最小的灰度級(jí)別是1,最大的灰度級(jí)別是8,共有8個(gè)灰度級(jí)別。右側(cè)對應(yīng)的灰度共生矩陣,左上角第一行與第一列的坐標(biāo)(1, 1)包含值1,原因在于水平方向上,相距一個(gè)像素值,當(dāng)前像素跟水平右側(cè)相鄰像素只有一個(gè)是1、1相鄰的像素值(灰度級(jí)別)對;右側(cè)共生矩陣的原始(1, 2) = 2 說明在像素矩陣中有兩個(gè)像素值1,2相鄰的像素點(diǎn)對、以此類推得到完整的右側(cè)灰度共生矩陣。根據(jù)當(dāng)前像素跟相鄰像素位置不同,可以計(jì)算得到不同的共生矩陣,同時(shí)根據(jù)像素之間的距離不同會(huì)輸出不同灰度共生矩陣??偨Y(jié)來說,有如下四種不同角度的灰度共生矩陣:

c1f4617e-1b0f-11ed-ba43-dac502259ad0.png

0度水平方向GLCM

45度方向GLCM

90度垂直方向GLCM

135度方向GLCM

根據(jù)相鄰像素點(diǎn)之間距離參數(shù)D不同可以得到不同距離的GLCM。此外對正常的灰度圖像來說,最小灰度值為0,最大的灰度值為255,共計(jì)256個(gè)灰度級(jí)別,所以GLCM的大小為256x256,但是我們可以對灰度級(jí)別進(jìn)行降維操作,比如可以每8個(gè)灰度值表示一個(gè)level這樣,這樣原來256x256大小的共生矩陣就可以改成256/8 * 256 /8 = 32x32的共生矩陣。所以最終影響灰度共生矩陣生成有三個(gè)關(guān)鍵參數(shù):

角度 (支持0、45、90、135)

距離(大于等于1個(gè)像素單位)

灰度級(jí)別(最大GLCM=256 x 56)

GLCM實(shí)現(xiàn)紋理特征計(jì)算

灰度共生矩陣支持如下紋理特征計(jì)算,它們是:

能量

熵值

對比度

相關(guān)性

逆分差

這些紋理特征計(jì)算公式如下:

c2102562-1b0f-11ed-ba43-dac502259ad0.png

上述5個(gè)是常見的GLCM的紋理特征,GLCM總計(jì)由14個(gè)特征值輸出,這里就不再贅述了!感興趣的可以自己搜索關(guān)鍵字GLCM。

OpenCV計(jì)算灰度共生矩陣

OpenCV本身沒有灰度共生矩陣的算法實(shí)現(xiàn),所以需要對照自己編碼實(shí)現(xiàn),計(jì)算圖像灰度共生矩陣,代碼實(shí)現(xiàn)步驟如下:

加載圖像,灰度轉(zhuǎn)

創(chuàng)建灰度共生矩陣Mat對象

計(jì)算灰度共生矩陣

顯示灰度共生矩陣

這里我采用的角度為0、45、90、135、像素距離d=1、灰度級(jí)別為256,代碼實(shí)現(xiàn)如下:

//0°,45°,90°,135°
Matglcm_0=Mat::zeros(Size(step,step),CV_32FC1);
for(introw=0;row(row,col);
intj=gray.at(row,col+1);
glcm_0.at(i,j)++;
}
}

Matglcm_45=Mat::zeros(Size(step,step),CV_32FC1);
for(introw=1;row(row,col);
intj=gray.at(row-1,col+1);
glcm_45.at(i,j)++;
}
}
Matglcm_90=Mat::zeros(Size(step,step),CV_32FC1);
for(introw=1;row(row,col);
intj=gray.at(row-1,col);
glcm_90.at(i,j)++;
}
}
Matglcm_135=Mat::zeros(Size(step,step),CV_32FC1);
for(introw=1;row(row,col);
intj=gray.at(row-1,col-1);
glcm_135.at(i,j)++;
}
}

normalize(glcm_0,glcm_0,0,1.0,NORM_MINMAX);
normalize(glcm_45,glcm_45,0,1.0,NORM_MINMAX);
normalize(glcm_90,glcm_90,0,1.0,NORM_MINMAX);
normalize(glcm_135,glcm_135,0,1.0,NORM_MINMAX);

運(yùn)行效果如下:圖一

c2216962-1b0f-11ed-ba43-dac502259ad0.jpg

斑馬線的灰度共生矩陣

c2382ee0-1b0f-11ed-ba43-dac502259ad0.jpg

提取圖像對比度特征

基于共生矩陣實(shí)現(xiàn)紋理特征計(jì)算,這里我用了比較簡單的對比度計(jì)算來實(shí)現(xiàn)局部紋理特征提取、代碼實(shí)現(xiàn)如下(局部窗口大小8x8、灰度級(jí)別256/32 =8個(gè)級(jí)別)

intstep=256;
Matimage=imread("D:/images/ftexture.jpg");
//Matimage=imread("D:/images/ban_texture.jpg");
Matgray;
cvtColor(image,gray,COLOR_BGR2GRAY);
imshow("gray",gray);
intheight=gray.rows;
intwidth=gray.cols;

Matglcm_0=Mat::zeros(Size(width,height),CV_32FC1);
Rectroi;
roi.x=0;
roi.y=0;
roi.width=8;
roi.height=8;

for(introw=4;row(row,col)=pv;
}
}
normalize(glcm_0,glcm_0,0,1.0,NORM_MINMAX);
imshow("glcm",glcm_0);
waitKey(0);

方法計(jì)算灰度矩陣的代碼如下:

Matm=Mat::zeros(Size(8,8),CV_32FC1);
for(introw=0;row(row,col)/32;
intj=im.at(row+1,col+1)/32;
m.at(i,j)++;
}
}
floatcontrast=0;
for(inti=0;i(i,j)*(i-j)*(i-j);
}
}
returncontrast;

計(jì)算135°的灰度共生矩陣,基于計(jì)算局部對比度提取紋理運(yùn)行結(jié)果如下:

測試一(左側(cè)是輸入圖像、右側(cè)135的對比度)

c2487c46-1b0f-11ed-ba43-dac502259ad0.jpg

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    932

    瀏覽量

    54731
  • 圖像特征
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    7034
  • 灰度共生矩陣
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    834

原文標(biāo)題:基于灰度共生矩陣(GLCM)的圖像紋理分析與提取

文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CT的基本原理及方法

    CT的基本原理及方法人體內(nèi)不同組織對射線的吸收率是不同的,這也是 CT 技術(shù)的基本原理。如下圖所示:圖(1)左側(cè)代表一未知灰度的區(qū)域,每小塊灰度值相同,分別以μ 標(biāo)記,如圖所示做兩次投
    發(fā)表于 06-14 15:56

    步進(jìn)電機(jī)基本原理

    本帖最后由 eehome 于 2013-1-5 09:48 編輯 步進(jìn)電機(jī)基本原理
    發(fā)表于 08-16 16:17

    串聯(lián)諧振逆變器的基本原理

    串聯(lián)諧振通常伴有逆變器。該組合稱為串聯(lián)諧振逆變器。什么是基本原理?讓我簡要介紹串聯(lián)諧振逆變器的一些基本原理。]首先給你看一張圖片:
    發(fā)表于 11-07 10:21

    IC測試基本原理是什么?

    IC測試基本原理是什么?ATE測試向量是什么?
    發(fā)表于 05-07 06:43

    電機(jī)轉(zhuǎn)動(dòng)的基本原理是什么?

    電機(jī)轉(zhuǎn)動(dòng)的基本原理是什么?電機(jī)運(yùn)動(dòng)的基本原則有哪些?
    發(fā)表于 07-21 07:59

    線性電源的基本原理是什么

    多路線性電源 AC-DC穩(wěn)壓電源 低紋波電源 可調(diào)線性電源 原理圖PCB目錄多路線性電源 AC-DC穩(wěn)壓電源 低紋波電源 可調(diào)線性電源 原理圖PCB基本原理芯片選型原理圖&3D-PCB具體
    發(fā)表于 07-30 07:47

    無線充電的基本原理是什么

    一 、無線充電基本原理無線充電的基本原理就是我們平時(shí)常用的開關(guān)電源原理,區(qū)別在于沒有磁介質(zhì)耦合,那么我們需要利用磁共振的方式提高耦合效率,具體方法是在發(fā)送端和接收端線圈串并聯(lián)電容,是發(fā)送線圈處理諧振
    發(fā)表于 09-15 06:01

    RAID技術(shù)的基本原理是什么

    RAID技術(shù)的基本原理是什么?RAID技術(shù)有哪幾個(gè)優(yōu)勢?
    發(fā)表于 10-14 12:01

    串口通信的基本原理是什么?

    同步通信和異步通信的區(qū)別是什么?串口通信的基本原理是什么?
    發(fā)表于 12-13 06:46

    基于灰度共生矩陣的自適應(yīng)圖像邊緣檢測

    紋理分析是圖像處理中一種十分重要的方法。通過紋理分析,利用灰度共生矩陣慣性矩特征值能夠反映圖像灰度空間復(fù)雜度的特性,成功獲取了LOG邊緣檢測算子最佳空間系數(shù),抑制
    發(fā)表于 08-05 15:22 ?0次下載

    基于GLCM和CGA的人臉表情識(shí)別方法

    灰度共生矩陣GLCM 紋理是圖像分析中常用的特征% 一般說來可以認(rèn)為 紋理由許多相互接近的( 互相交織的元素組成% 并具有 一定的周期性 量化圖像的紋理內(nèi)容是描述圖像的一種 重要方法
    發(fā)表于 02-11 14:14 ?70次下載
    基于<b class='flag-5'>GLCM</b>和CGA的人臉表情識(shí)別方法

    步進(jìn)馬達(dá)基本原理

    步進(jìn)馬達(dá)基本原理步進(jìn)馬達(dá)基本原理步進(jìn)馬達(dá)基本原理
    發(fā)表于 11-30 11:55 ?8次下載

    基于分塊顏色矩和灰度共生矩陣的圖像檢索_岳磊

    基于分塊顏色矩和灰度共生矩陣的圖像檢索_岳磊
    發(fā)表于 03-17 09:57 ?1次下載

    三像素彩色共生矩陣的圖像檢索

    種顏色,并且對圖像進(jìn)行共生矩陣分析,最后采用90維特征向量來描述圖像特征。實(shí)驗(yàn)結(jié)果表明,三像素彩色共生矩陣的檢索性能優(yōu)越于灰度
    發(fā)表于 12-19 16:34 ?1次下載

    使用結(jié)合改進(jìn)聚合通道特征和灰度共生矩陣設(shè)計(jì)的俯視行人檢測算法介紹

    針對傳統(tǒng)俯視行人檢測方法提取的頭部特征單一、檢測錯(cuò)誤率高的問題,提出了結(jié)合改進(jìn)聚合通道特征(ACF)和灰度共生矩陣GLCM)的俯視行人檢測算法。首先,將提取到的HSV顏色特征、梯度幅
    發(fā)表于 12-24 16:59 ?6次下載
    使用結(jié)合改進(jìn)聚合通道特征和<b class='flag-5'>灰度</b><b class='flag-5'>共生</b><b class='flag-5'>矩陣</b>設(shè)計(jì)的俯視行人檢測算法介紹