Gray-level Co-occurrence Matrix(灰度共生矩陣)

http://www.zhizhihu.com/html/y2010/1130.html

共生矩陣用兩個位置的象素的聯合概率密度來定義,它不僅反映亮度的分布特性,也反映具有同樣亮度或接近亮度的象素之間的位置分布特性,是有關圖象亮度變化的二階統計特征。它是定義一組紋理特征的基礎。

     一幅圖象的灰度共生矩陣能反映出圖象灰度關於方向、相鄰間隔、變化幅度的綜合信息,它是分析圖象的局部模式和它們排列規則的基礎。

  設f(x,y)為一幅二維數字圖象,其大小為M×N,灰度級別為Ng,則滿足一定空間關系的灰度共生矩陣為

P(i,j)=#{(x1,y1),(x2,y2)∈M×N|f(x1,y1)=i,f(x2,y2)=j}

  其中#(x)表示集合x中的元素個數,顯然P為Ng×Ng的矩陣,若(x1,y1)與(x2,y2)間距離為d,兩者與坐標橫軸的夾角為θ,則可以得到各種間距及角度的灰度共生矩陣P(i,j,d,θ)。

紋理特征提取的一種有效方法是以灰度級的空間相關矩陣即共生矩陣為基礎的[7],因為圖像中相距(Δx,Δy)的兩個灰度像素同時出現的聯合頻率分布可以用灰度共生矩陣來表示。若將圖像的灰度級定為N級,那麼共生矩陣為N×N矩陣,可表示為M(Δx,Δy)(h,k),其中位於(h,k)的元素mhk的值表示一個灰度為h而另一個灰度為k的兩個相距為(Δx,Δy)的像素對出現的次數。
  對粗紋理的區域,其灰度共生矩陣的mhk值較集中於主對角線附近。因為對於粗紋理,像素對趨於具有相同的灰度。而對於細紋理的區域,其灰度共生矩陣中的mhk值則散布在各處。

    為了能更直觀地以共生矩陣描述紋理狀況,從共生矩陣導出一些反映矩陣狀況的參數,典型的有以下幾種:

(1)能量: 是灰度共生矩陣元素值的平方和,所以也稱能量,反映了圖像灰度分布均勻程度和紋理粗細度。如果共生矩陣的所有值均相等,則ASM值小;相反,如果其中一些值大而其它值小,則ASM值大。當共生矩陣中元素集中分布時,此時ASM值大。ASM值大表明一種較均一和規則變化的紋理模式。

(2)對比度: ,其中 。反映了圖像的清晰度和紋理溝紋深淺的程度。紋理溝紋越深,其對比度越大,視覺效果越清晰;反之,對比度小,則溝紋淺,效果模糊。灰度差即對比度大的象素對越多,這個值越大。灰度公生矩陣中遠離對角線的元素值越大,CON越大。

(3)相關:它度量空間灰度共生矩陣元素在行或列方向上的相似程度,因此,相關值大小反映了圖像中局部灰度相關性。當矩陣元素值均勻相等時,相關值就大;相反,如果矩陣像元值相差很大則相關值小。如果圖像中有水平方向紋理,則水平方向矩陣的COR大於其余矩陣的COR值。

(4)熵: 是圖像所具有的信息量的度量,紋理信息也屬於圖像的信息,是一個隨機性的度量,當共生矩陣中所有元素有最大的隨機性、空間共生矩陣中所有值幾乎相等時,共生矩陣中元素分散分布時,熵較大。它表示了圖像中紋理的非均勻程度或復雜程度。

(5)逆差距: 反映圖像紋理的同質性,度量圖像紋理局部變化的多少。其值大則說明圖像紋理的不同區域間缺少變化,局部非常均勻。

其它參數:

中值<Mean>

協方差<Variance>

同質性/逆差距<Homogeneity>

反差<Contrast>

差異性<Dissimilarity>

熵<Entropy>

二階距<Angular Second Moment>

自相關<Correlation>

當圖像的局部有較小的方差時,則灰度值佔有支配地位,當圖像的局部有較大的方差時,則紋理佔有支配地位。紋理是和局部灰度及其空間組織相聯系的,紋理在識別感興趣的目標和地區中有著非常重要的作用。

灰度共生矩陣表示了灰度的空間依賴性,它表示了在一種紋理模式下的像素灰度的空間關系。它的弱點是沒有完全抓住局部灰度的圖形特點,因此對於較大的局部,此方法的效果不太理想。灰度共生矩陣為方陣,維數等於圖像的灰度級。灰度共生矩陣中的元素(i,j)的值表示了在圖像中其中一個像素的灰度值為i,另一個像素的灰度值為j,並且相鄰距離為d,方向為A的這樣兩個像素出現的次數。在實際應用中A一般選擇為0°、45°、90°、135°。一般來說灰度圖像的灰度級為256,在計算由灰度共生矩陣推導出的紋理特征時,要求圖像的灰度級遠小於256,主要是因為矩陣維數較大而窗口的尺寸較小則灰度共生矩陣不能很好表示紋理,如要能夠很好表示紋理則要求窗口尺寸較大,這樣使計算量大大增加,而且當窗口尺寸較大時對於每類的邊界區域誤識率較大。所以在計算灰度共生矩陣之前需要對圖像進行直方圖規定化,以減小圖像的灰度級,一般規定化後的圖像的灰度級為8或16。由灰度共生矩陣能夠導出許多紋理特征,本文計算了14種灰度共生矩陣特征,分別為紋理二階距、紋理熵、紋理對比度、紋理均勻性、紋理相關、逆差分矩、最大概率、紋理方差、共生和均值、共生和方差、共生和熵、共生差均值、共生差方差、共生差熵。

由灰度共生矩陣能夠導出許多紋理特征,計算了14種灰度共生矩陣特征,分別為紋理二階距、紋理熵、紋理對比度、紋理均勻性、紋理相關、逆差分矩、最大概率、紋理方差、共生和均值、共生和方差、共生和熵、共生差均值、共生差方差、共生差熵。

目前,人們對遙感影像上的紋理特征的含義理解不盡相同,紋理有時被稱為結構、影紋和紋形等。Pickett認為紋理為保持一定的特征重復性並且間隔規律可以任意安排的空間結構。HawKins認為[6]紋理具有三大標志:某種局部序列性不斷重復、非隨機排列和紋理區域內大致為均勻的統一體。LiWang和D. C. He認為[7],紋理是紋理基元組成的,紋理基元被認為是表現紋理特征的最小單元,是一個像元在

其周圍8個方向上的特征反應。紋理特征有時是明顯的,以某種基本圖形在某一地區有規律的周期性出現,例如:大面積森林覆蓋地區的影像構成的紋理為斑點狀,沙漠地區的影像構成的紋理為鏈狀、新月狀等;而有時紋理特征是不明顯的、隱晦的,具有不穩定性。一般來說,前者紋理比較均一,後者紋理比較復雜[9]

紋理作為一種區域特征,是對於圖像各像元之間空間分布的一種描述。由於紋理能充分利用圖像信息,無論從理論上或常識出發它都可以成為描述與識別圖像的重要依據,與其他圖像特征相比,它能更好地兼顧圖像宏觀性質與細微結構兩個方面,因此紋理成為目標識別需要提取的重要特征。提取紋理特征的方法很多,如基於局部統計特性的特征、基於隨機場模型的特征、基於空間頻率的特征、分形特征等,其中,應用最廣泛的是基於灰值共生矩陣的特征[10]


%**************************************************************************
% 圖像檢索——紋理特征
%基於共生矩陣紋理特征提取,d=1,θ=0°,45°,90°,135°共四個矩陣
%所用圖像灰度級均為256
%參考《基於顏色空間和紋理特征的圖像檢索》
%function : T=Texture(Image)
%Image : 輸入圖像數據
%T : 返回八維紋理特征行向量
%**************************************************************************
function T = Texture(path)
Image = imread(path);

% [M,N,O] = size(Image);
M = 256;
N = 256;
if isrgb(Image)%判斷是否是RGB
Gray=rgb2gray(Image);
end
%--------------------------------------------------------------------------
%1.將各顏色分量轉化為灰度
%--------------------------------------------------------------------------
%Gray = double(0.3*Image(:,:,1)+0.59*Image(:,:,2)+0.11*Image(:,:,3))

%--------------------------------------------------------------------------
%2.為了減少計算量,對原始圖像灰度級壓縮,將Gray量化成16級
%--------------------------------------------------------------------------
for i = 1:M
for j = 1:N
for n = 1:256/16
if (n-1)*16<=Gray(i,j)&Gray(i,j)<=(n-1)*16+15
Gray(i,j) = n-1;
end
end
end
end

%--------------------------------------------------------------------------
%3.計算四個共生矩陣P,取距離為1,角度分別為0,45,90,135
%--------------------------------------------------------------------------
P = zeros(16,16,4);
for m = 1:16
for n = 1:16
for i = 1:M
for j = 1:N
if j<n&gray(i,j)==m-1&gray(i,j+1)==n-1
 P(m,n,1) = P(m,n,1)+1;
P(n,m,1) = P(m,n,1);
end
if i>1&j<n&gray(i,j)==m-1&gray(i-1,j+1)==n-1
 P(m,n,2) = P(m,n,2)+1;
P(n,m,2) = P(m,n,2);
end
if i<m&gray(i,j)==m-1&gray(i+1,j)==n-1
 P(m,n,3) = P(m,n,3)+1;
P(n,m,3) = P(m,n,3);
end
if i<m&j<n&gray(i,j)==m-1&gray(i+1,j+1)==n-1
 P(m,n,4) = P(m,n,4)+1;
P(n,m,4) = P(m,n,4);
end
end
end
if m==n
P(m,n,:) = P(m,n,:)*2;
end
end
end

%%---------------------------------------------------------
% 對共生矩陣歸一化
%%---------------------------------------------------------
for n = 1:4
P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n)));
end

%--------------------------------------------------------------------------
%4.對共生矩陣計算能量、熵、慣性矩、相關4個紋理參數
%--------------------------------------------------------------------------
H = zeros(1,4);
I = H;
Ux = H; Uy = H;
deltaX= H; deltaY = H;
C =H;
for n = 1:4
E(n) = sum(sum(P(:,:,n).^2)); %%能量
for i = 1:16
for j = 1:16
if P(i,j,n)~=0
H(n) = -P(i,j,n)*log(P(i,j,n))+H(n); %%熵
end
I(n) = (i-j)^2*P(i,j,n)+I(n); %%慣性矩

Ux(n) = i*P(i,j,n)+Ux(n); %相關性中μx
Uy(n) = j*P(i,j,n)+Uy(n); %相關性中μy
end
end
end
for n = 1:4
for i = 1:16
for j = 1:16
deltaX(n) = (i-Ux(n))^2*P(i,j,n)+deltaX(n); %相關性中σx
deltaY(n) = (j-Uy(n))^2*P(i,j,n)+deltaY(n); %相關性中σy
C(n) = i*j*P(i,j,n)+C(n);
end
end
C(n) = (C(n)-Ux(n)*Uy(n))/deltaX(n)/deltaY(n); %相關性
end

%--------------------------------------------------------------------------
%求能量、熵、慣性矩、相關的均值和標准差作為最終8維紋理特征
%--------------------------------------------------------------------------
T(1) = mean(E); T(2) = sqrt(cov(E));
T(3) = mean(H); T(4) = sqrt(cov(H));
T(5) = mean(I); T(6) = sqrt(cov(I));
T(7) = mean(C); T(8) = sqrt(cov(C));


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值