图像的灰度共生矩阵
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
圖像的灰度共生矩陣
Gray-level co-occurrence matrix from an image
圖像的灰度共生矩陣
灰度共生矩陣是像素距離和角度的矩陣函數,它通過計算圖像中一定距離和一定方向的兩點灰度之間的相關性,來反映圖像在方向、間隔、變化幅度及快慢上的綜合信息。
使用方法:
glcm = graycomatrix(I)
glcms = graycomatrix(I,param1,val1,param2,val2,...)
[glcms,SI] = graycomatrix(...)
描述:
glcms = graycomatrix(I) 產生圖像I的灰度共生矩陣GLCM。它是通過計算兩灰度值在圖像I 中水平相鄰的次數而得到的(也不必是水平相鄰的次數,這一參數是可調的,可能通過Offsets來進行調整,比如[0 D]代表是水平方向,[-D D]代表是右上角45度方向,[-D 0]代表是豎直方向,即90度方向,而[-D -D]則代表是左上角,即135度方向),GLCM中的每一個元素(i,j)代表灰度i與灰度j在圖像中水平相鄰的次數。
因為動態地求取圖像的GLCM區間代價過高,我們便首先將灰度值轉換到I的灰度區間裡。如果I是一個二值圖像,那麼灰度共生矩陣就將圖像轉換到兩級。如果I是一個灰度圖像,那將轉換到8級。灰度的級數決定了GLCM的大小尺寸。你可以通過設定參數「NumLevels」來指定灰度的級數,還可以通過設置「GrayLimits"參數來設置灰度共生矩陣的轉換方式。
下圖顯示了如何求解灰度共生矩陣,以(1,1)點為例,GLCM(1,1)值為1說明只有一對灰度為1的像素水平相鄰。GLCM(1,2)值為2,是因為有兩對灰度為1和2的像素水平相鄰。
glcms = graycomatrix(I,param1,val1,param2,val2,...) 返回一個或多個灰度灰度共生矩陣,根據指定的參數。參數可以很簡短,並且對大小寫不敏感。
參數
'GrayLimits' 是兩個元素的向量,表示圖像中的灰度映射的範圍,如果其設為[],灰度共生矩陣將使用圖像I的最小及最大灰度值作為GrayLimits
'NumLevels' 一個整數,代表是將圖像中的灰度歸一範圍。舉例來說,如果NumLevels 為8,意思就是將圖像I的灰度映射到1到8之間,它也決定了灰度共生矩陣的大小
'Offset' 上面有解釋,是一個p*2的整數矩陣,D代表是當前像素與鄰居的距離,通過設置D值,即可設置角度
Angle Offset
0 [0 D]
45 [-D D]
90 [-D 0]
135 [-D -D]
示例:
計算灰度共生矩陣,並且返回縮放後的圖像,SI
I = [ 1 1 5 6 8 8; 2 3 5 7 0 2; 0 2 3 5 6 7];
[glcm,SI] = graycomatrix(I,'NumLevels',9,'G',[])
計算灰度圖像的灰度共生矩陣
I = imread('circuit.tif');
glcm = graycomatrix(I,'Offset',[2 0]);
灰度共生矩陣的特徵:
角二階矩(Angular Second Moment, ASM)
ASM=sum(p(i,j).^2) p(i,j)指歸一後的灰度共生矩陣
角二階矩是圖像灰度分佈均勻程度和紋理粗細的一個度量,當圖像紋理絞細緻、灰度分佈均勻時,能量值較大,反之,較小。
熵(Entropy, ENT)
ENT=sum(p(i,j)*(-ln(p(i,j)))
是描述圖像具有的信息量的度量,表明圖像的複雜程序,當複雜程序高時,熵值較大,反之則較小。
反差分矩陣(Inverse Differential Moment, IDM)
IDM=sum(p(i,j)/(1+(i-j)^2))
反映了紋理的清晰程度和規則程度,紋理清晰、規律性較強、易於描述的,值較大;雜亂無
章的,難於描述的,值較小。