资源描述
灰度直方图是对图像上单个象素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。
取图像(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)的描述,形成了灰度共生矩阵。
实验中对灰度共生矩阵进行了如下的归一化:
简单的例子
在图像中任意去一点(x,y)及偏离它的一点(x+a,y+b)(其中,a、b为整数,人为定义)构成点对。设该点对的灰度值为(f1,f2),再令点(x,y)在整幅图像上移动,则会得到不同的(f1,f2)值。
设图像的最大灰度级为L,则f1与f2的组合共有L*L种。对于整幅图像,统计出每一种(f1,f2)值出现的次数,然后排列成一个方阵,再用(f1,f2)出现的总次数将他们归一化为出现的概率P(f1,f2),由此产生的矩阵为灰度共生矩阵。
如下图为一个简单的计算实例。图a为原图像,最大灰度级为16。为表示方便,这里将灰度级数减小到了4级,图a变为图b的形式。这样,(f1,f2)取值范围便为[0,3]。取不同的间隔,将(f1,f2)各种组合出现的次数排列起来,就可得到图e~g所示的灰度共生矩阵。e表示图b中(x,y)与偏离它的(x+1,y+0)构成点对时,(f1,f2)取值的情况(填充黄色部分为f1取0,f2取1时的情况,由图b填充易知共10种)。同理,f,g分别表示图c,d中(x,y)分别与点(x+1,y+1),(x+2,y+0)构成点对时点对(f1,f2)出现的情况(图c填充黄色部分表示f1取0,f2取0时,对角线点对(0,0)出现的情况,共8种;图d填充黄色部分表示f1取0,f2取2时水平点对(0,2)出现的情况,共9种)。例如,对于a=1,b=0,点对中(0,1)的组合共出现了10次。对比可以看出,(0,1),(1,2),(2,3)和(3,0)均有较高的出现频数。图b表明,图像中存在明显的左上右下方向的纹理。
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]
综合后的向量就可以看做是对图像纹理的一种描述,可以进一步用来分类、识别、检索等。[1]
对于纹理特征图像的提取, 我们需要对灰度共生矩阵的计算结果作适当处理。最简单的方法是取不同方向(0°、45°、90°、135°)的偏移参数, 作其灰度共生矩阵, 分别求取其特征指标, 然后对这些特征指标计算其均值和方差。这样处理就抑制了方向分量, 使得到的纹理特征与方向无关。
3 纹理特征影像提取的方法
基于影像灰度共生矩阵的纹理特征提取算法如下:
纹理特征影像提取分为提取灰度图像、灰度级量化, 计算特征值, 纹理特征影像的生成四部
分。
3.1 提取灰度图像
计算纹理特征的第一步就是将多波段的影像( RGB 影像) 转换为灰度图象, 求出分别代表RGB的单波段。选择其中的一个波段进行计算纹理特征。因为纹理特征是一种结构特征, 即使使用不同波段的影像得到的纹理特征都是一样的。所以我们任意选择了 R 波段作为研究的波段。
3.2 灰度级量化
在实际应用中, 一幅灰度影像的灰度级一般为 256 级, 在计算由灰度共生矩阵推导出的纹理特征时, 要求影像的灰度级远小于 256, 主要是因为影像共生矩阵的计算量由影像的灰度等级和影像的大小来确定。例如: 假定影像 G有 L个灰度级, 其大小为 R 行 C 列, 则运算量大约是 L2×R×C, 按一般情况 L=256, R=512, C=512 来计算,其基本运算至少要 1.7×1010 次。以现行微机的运算速度每秒 100 万次为例, 对上述一幅影像计算其灰度共生矩阵至少需要 1.7×103 秒以上, 约 30分钟。由此可见, 这样长的时间用来进行影像的识别是不太切合实际的。解决的办法是: 在尽量保持影像原形的情况下大量削减影像灰度级的取值个数和影像分辨率。因此, 在计算空间灰度共生矩阵时, 在不影响纹理特征的前提下往往先将原影像的灰度级压缩到较小的范围, 一般取 8级或 16 级, 以便减小共生矩阵的尺寸。在本研究中, 我们将遥感影像压缩为 8 个灰度级。由于灰度通常分布在较窄的范围内, 若直接把灰度除以32 取整, 会引起影像的清晰度降低。所以在对影像进行灰度级压缩时, 首先需将影像进行直方图均衡化处理, 增加灰度值的动态范围, 从而增加影像的整体对比效果。这样进行了直方图均衡化之后, 再将灰度除以 32 取整之后, 便可以将 0~255 灰度级变换为0~7灰度级。因为灰度级由 256 变为了 8 级, 所以影像颜色显得很暗淡。但是在进行纹理信息处理时对纹理特征的影响不大。3.3 计算特征值
1)滑动窗口选择
灰度共生矩阵的纹理分析方法需要选择一定大小的滑动窗口, 这里对于每一个特征都以5×5 和 7×7 滑动窗口进行了计算。
2)步距的选择
通过试验与比较采用 d=1 的步距比较合适。即中心像元同与之直接相邻的像元做运算和比较。
3)方向的选择
通常计算灰度共生矩阵的方向取 0°, 45°,90°, 135°四个方向。若是不对这四个方向综合,则在每一方向上都可以得到多类特征, 这样得到纹理特征过于繁多, 不利于使用。因而又可以对这四个方向的特征值取平均值, 通过比较本文取了四个方向的平均值作为最终的特征值共生矩阵。
3.4 纹理特征值的计算及纹理特征影像的生成
1)纹理特征值的计算
根据上述的灰度共生矩阵的计算和纹理特征公式,对本文采用到的影像, 取步距 d=1, 对0°,45°, 90°, 135°四个方向的四个特征值进行了计算, 然后对该计算取其平均值得到四个特征值。
2)纹理特征影像的生成
纹理特征影像生成的主要思想是: 用每一个小窗口形成的子影像, 通过纹理特征计算程序计算小窗口影像灰度共生矩阵和纹理特征值, 然后将代表这个窗口纹理特征值赋值给窗口的中心点, 这就完成了第一小窗口的纹理特征计算。然后窗口被移动一个像素, 形成另外一个小的窗口影像, 再重复计算新共生矩阵和纹理特征值。依次类推, 这样整个图象就会形成一个由纹理特征值做成的一个纹理特征值矩阵, 然后将这个纹理特征值矩阵转换成纹理特征影像。
例如: 下图是以 5×5 窗口为例,计算纹理特征影像的一个原理图。对于边缘部分的处理是采用将图像的外围补充上一列或一行与第一列或第一行灰度值一样的数值, 然后再进行计算。计算时采用 3×3 的滑动窗口, 同样将计算值赋予 3×3 窗口的中心位置, 就得到整个图像的纹理特征矩阵。但是这样处理的问题就是对于边缘部分的纹理特征图像不是完全的 5×5 或者 7×7 的纹理特征图像。除非当 5×5 时在边缘加上两列或者两行, 当 7×7 时在边缘加上三列或者三行, 这样的话可以保证整个图像的滑动窗口大小一致, 得到的是利用同一种滑动窗口得到的特征图像。
4 实验结果分析
本实验程序通过 VC++ 编程来实现对输入遥感影像的纹理分析, 计算影像纹理特征值输出纹理分析的影像结果。该程序是利用 5×5 和 7×7 两种滑动窗口计算出在四个方向计算出的纹理特征值求平均, 对整个影像每一个像元遍历计算后, 我们便得到了纹理特征值形成的特征值矩阵, 进而将特征值矩阵转换为特征影像。利用不同的纹理特征统计计算方法, 我们便得到了多幅纹理特征影像。
展开阅读全文