灰度共生矩阵,指的是一种通过研究灰度的
空间相关特性来描述纹理的常用方法。1973年Haralick等人提出了用灰度共生矩阵来描述纹理特征。
矩阵生成
灰度直方图是对图像上单个像素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两像素分别具有某灰度的状况进行统计得到的。
取图像(N×N)中任意一点 (x,y)及偏离它的另一点 (x+a,y+b),设该点对的灰度值为 (g1,g2)。令点(x,y) 在整个画面上移动,则会得到各种 (g1,g2)值,设
灰度值的级数为 k,则(g1,g2) 的组合共有 k 的平方种。对于整个画面,统计出每一种 (g1,g2)值出现的次数,然后排列成一个方阵,再用(g1,g2) 出现的总次数将它们归一化为出现的概率P(g1,g2) ,这样的方阵称为灰度共生矩阵。距离差分值(a,b) 取不同的数值组合,可以得到不同情况下的
联合概率矩阵。(a,b) 取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取(1,0)、(1,1)、(2,0)等小的差分值。
当 a=1,b=0时,像素对是水平的,即0度扫描;当a=0,b=1 时,像素对是垂直的,即90度扫描;当 a=1,b=1时,像素对是右对角线的,即45度扫描;当 a=-1,b=1时,像素对是左对角线,即135度扫描。
这样,两个象素灰度级同时发生的概率,就将 (x,y)的空间坐标转化为“灰度对” (g1,g2)的描述,形成了灰度共生矩阵。
实验中对灰度共生矩阵进行了如下的归一化:
(1)
特征
直觉上来说,如果图像的是由具有相似灰度值的像素块构成,则灰度共生矩阵的对角元素会有比较大的值;如果图像像素灰度值在局部有变化,那么偏离对角线的元素会有比较大的值。
通常可以用一些标量来表征灰度共生矩阵的特征,令G表示灰度共生矩阵常用的特征有:
ASM 能量
(angular second moment)
也即每个矩阵元素的平方和。
如果灰度共生矩阵中的值集中在某一块(比如对连续灰度值图像,值集中在对角线;对结构化的图像,值集中在偏离对角线的位置),则ASM有较大值,若G中的值分布较均匀(如噪声严重的图像),则ASM有较小的值。
能量是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反,如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均一和规则变化的纹理模式。
对比度(contrast)
直接反映了某个像素值及其领域像素值的亮度的对比情况。如果偏离对角线的元素有较大值,即图像亮度值变化很快,则CON会有较大取值,这也符合对比度的定义。其中 。反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。
逆差矩
(inverse different moment)
如果灰度共生矩阵对角元素有较大值,IDM就会取较大的值。因此连续灰度的图像会有较大IDM值。
逆差矩: 反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。
熵(entropy)
若灰度共生矩阵值分布均匀,也即图像近于随机或噪声很大,熵会有较大值。
熵是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。
自相关(correlation)
其中
自相关反应了图像纹理的一致性。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。
最后,可以用一个向量将以上特征综合在一起。例如,当距离差分值(a,b)取四种值的时候,可以综合得到向量:
h=[ASM1, CON1, IDM1, ENT1, COR1, ..., ASM4, CON4, IDM4, ENT4, COR4]
综合后的向量就可以看做是对图像纹理的一种描述,可以进一步用来分类、识别、检索等。
提取方法
基于影像灰度共生矩阵的纹理特征提取算法如下:
纹理特征影像提取分为提取灰度图像,灰度级量化,计算特征值,纹理特征影像的生成四部分。
提取灰度图像
计算纹理特征的第一步就是将
多波段的影像(RGB影像)转换为灰度图象,求出分别代表RGB的
单波段。选择其中的一个波段进行计算纹理特征。因为纹理特征是一种结构特征,即使使用不同波段的影像得到的纹理特征都是一样的。所以我们任意选择了R波段作为研究的波段。
灰度级量化
在实际应用中,一幅灰度影像的灰度级一般为256级,在计算由灰度共生矩阵推导出的纹理特征时,要求影像的灰度级远小于256,主要是因为影像共生矩阵的计算量由影像的灰度等级和影像的大小来确定。例如:假定影像G有L个灰度级,其大小为R行C列,则运算量大约是L2 * R * C,按一般情况L=256, R=512, C=512来计算,其基本运算至少要1.7 * 10十次方次。以现行
微机的运算速度每秒100万次为例,对上述一幅影像计算其灰度共生矩阵至少需要1.7 X 103秒以上,约30分钟。由此可见,这样长的时间用来进行影像的识别是不太切合实际的。解决的办法是:在尽量保持影像原形的情况下大量削减影像灰度级的取值个数和影像分辨率。因此在计算空间灰度共生矩阵时,在不影响纹理特征的前提下往往先将原影像的灰度级压缩到较小的范围,一般取8级或16级,以便减小共生矩阵的尺寸。
这样进行了
直方图均衡化之后,再将灰度除以32取整之后便可以将0~255灰度级变换为0~7灰度级。
因为灰度级由256变为了8级,所以影像颜色显得很暗淡。但是在进行纹理信息处理时对纹理特征的影响不大。
计算特征值
1、滑动窗口选择
灰度共生矩阵的纹理分析方法需要选择一定大小的滑动窗口,这里对于每一个特征都以5X5和7X7滑动窗口进行了计算。
2、步距的选择
通过试验与比较采用d=1的步距比较合适。即中心像元同与之直接相邻的像元做运算和比较。
3、方向的选择
通常计算灰度共生矩阵的方向取0° ,45°,90° , 135°四个方向。若是不对这四个方向综合,则在每一方向上都可以得到多类特征,这样得到纹理特征过于繁多,不利于使用。因而又可以对这四个方向的
特征值取平均值,通过比较本文取了四个方向的平均值作为最终的特征值共生矩阵。
纹理特征值的计算及生成
纹理特征影像生成的主要思想是:用每一个小窗口形成的子影像,通过纹理特征计算程序计算小窗口影像灰度共生矩阵和纹理特征值,然后将代表这个窗口纹理特征值赋值给窗口的中心点,这就完成了第一小窗口的纹理特征计算。然后窗口被移动一个像素形成另外一个小的窗口影像,再重复计算新
共生矩阵和纹理特征值。依次类推,这样整个图象就会形成一个由纹理特征值做成的一个纹理特征值矩阵,然后将这个纹理特征值矩阵转换成纹理特征影像。