Advertisement

纹理特征分析的灰度共生矩阵(GLCM)

阅读量:

纹理分析 是对图像灰度(浓淡)空间分布模式的提取和分析。纹理分析在遥感图像、X射线照片、细胞图像判读和处理方面有广泛的应用。关于纹理,还没有一个统一的数学模型。它起源于表征纺织品表面性质的纹理概念,可以用来描述任何物质组成成分的排列情况,例如医学上X 射线照片中的肺纹理、血管纹理、航天(或航空)地形照片中的岩性纹理等。图像处理中的视觉纹理通常理解为某种基本模式(色调基元)的重复排列。因此描述一种纹理包括确定组成纹理的色调基元和确定色调基元间的相互关系。纹理是一种区域特性,因此与区域的大小和形状有关。两种纹理模式之间的边界,可以通过观察纹理度量是否发生显著改变来确定。纹理是物体结构的反映,分析纹理可以得到图像中物体的重要信息,是图像分割特征抽取和分类识别的重要手段。对于空间域图像或变换域图像(见图像变换),可以用统计和结构两种方法进行纹理分析。
统计纹理分析寻找刻划纹理的数字特征,用这些特征或同时结合其他非纹理特征对图像中的区域(而不是单个像素)进行分类。图像局部区域的自相关函数、灰度共生矩阵 、灰度游程以及灰度分布的各种统计量,是常用的数字纹理特征。如灰度共生矩阵用灰度的空间分布表征纹理。由于粗纹理的灰度分布随距离的变化比细纹理缓慢得多,因此二者有完全不同的灰度共生矩阵。
结构纹理分析研究组成纹理的基元和它们的排列规则。基元可以是一个像素的灰度、也可以是具有特定性质的连通的像素集合。基元的排列规则常用树文法来描述。

英文名称 Texture Analysis;

学术解释

基于特定图像处理技术提取纹理特征参数的过程中实现了对纹理进行定量或定性描述的技术流程。从性质上说,纹理分析方法主要依据其分类依据可以划分为两大类

学术定义

纹理是一种典型的视觉现象,在视觉感知领域尚未达成对'纹理'这一概念的精确化定义.为此,学者们根据不同的应用场景进行了特定化的理论构建

定义1

定义2:如果图像函数中的某些局部特征是稳定的、缓慢变化的或呈现近似周期性变化特性,则其对应的区域呈现出稳定的纹理特征。

作用分析

该表面特征的研究被称作纹理分析。在该领域具有关键的应用价值。

对于机械工程领域而言,在探究机械零件加工表面的凹凸不平性方面所开展的研究不仅在理论上具有重要意义。

对图像灰度空间分布模式提取和分析

texture analysis has extensive applications in remote sensing images, X-ray photographs, cell image recognition, and processing. Currently, there is no unified mathematical model for texture. It originated from the concept of describing surface properties of fabrics, and can be used to describe the arrangement patterns of any material components. For example, in medical X-ray images, we can observe lung textures, vascular textures, and rock textures in planetary terrain images. In image processing, visual texture is typically understood as a periodic arrangement of basic color elements (primitive texture units). Therefore, to describe a texture pattern, it is necessary to identify both the constituent color elements and their relative relationships. Since texture is a regional property, it is closely related to the size and shape of the region under consideration. The boundary between two texture patterns can be determined by observing whether significant changes occur in their texture measures. Texture reflects the structural characteristics of objects; analyzing textures provides important information about objects within an image and serves as a crucial tool for tasks such as image segmentation (http://baike.baidu.com/view/671764.htm), feature extraction (http://baike.baidu.com/view/1312693.htm), and classification-identification (http://baike.baidu.com/view/2844853.htm). For both spatial domain images and transformed domain images (see Image Transform), we can use

统计和结构两种方法进行纹理分析

统计教材分析旨在提取描述材料特性的关键指标,在此过程中通过结合这些特性与其他非材料特性的信息,在图像中识别区域而非单一像素;在图像分析中,则常用自相关函数、灰色共生矩阵、游程数以及基于-gray-level分布的统计量来描述局部区域;这些统计量被广泛用于表示和分析数字图像中的材料特性;例如,灰色共生矩阵通过记录不同位置上相邻像素间的gray-level对比关系来表征 textures;粗 textures表现出在空间尺度上的变化更为缓慢,因而二者具有显著不同的灰色共生矩阵特性

结构纹理分析主要关注组成纹理的基本元素及其排列规律。这些基本元素可以表现为单个像素点的空间灰度特征,也可以是具有特定性质并形成连通区域的一群像素集合。描述基元排列规律通常采用树形文法模型。

纹理基元与影调

一个纹理基元(粗略地说)是一个具备某些不变属性的视觉元素。这些不变属性在其所在区域的不同位置以各种变形的方向呈现出来。纹理基元最核心的属性是该区域像素灰度的变化特征;而阴影同样代表明暗变化。

基于此, 我们认为阴影与纹路并非相互独立的概念: 在图像某一局部区域内, 当阴影基本元素的变化极其微小时, 该局部的主要特征即为阴影特征; 若在一个较小的局部区域内包含大量不同类型的阴影元素, 则该局部的主要特征则为纹理特征。

spatial gray level co-occurrence matrix(GLCM)实现灰度共生的空间矩阵

Texture

基于子物体基础之上

1.Layer Value Texture Based on Subobjects

Mean of sub-objects: stddev

Avrg. mean diff. to neighbors of subobjects

average difference between a subobject and its adjacent objects in layer k

average difference between a subobject and its adjacent objects in layer k

2.Shape Texture Based on Subobjects

—【Area of subobjects: mean】所包含子对象的平均面积;

—【Area of subobjects: stddev.】所包含子对象的面积的标准差;

Density of subobjects: mean

—【Density of subobjects: stddev. 】子对象密度的标准差;

—【Asymmetry of subobjects: mean 】子对象不对称性的平均值;

—【Asymmetry of subobjects: stddev. 】子对象不对称性的标准差;

Direction of subobjects: mean

—【Direction of subobjects: stddev. 】子对象主方向的标准差。

3.Texture After Haralick P.152

灰度共生矩阵(**

共生矩阵通过两个空间位置上的像素联合概率密度来进行定义,在除了亮度分布特性之外还体现了具有相同亮度或接近亮度像素的空间位置分布特性,并作为图像亮度变化的一种二阶统计特征存在。这是构建纹理特征基础的关键依据。

一幅图像的灰度共生矩阵能够体现出图像在不同方向、特定间距下的灰度变化综合信息,并作为分析图像局部模式及其排列规则的重要工具基础。

设f(x,y)代表一个M×N尺寸二维数字图像,在Ng个灰度等级下满足特定空间关系条件下的灰度共生矩阵定义如下:
P(i,j)=#{(x₁,y₁),(x₂,y₂)∈M×N|f(x₁,y₁)=i,f(x₂,y₂)=j
其中#(x)表示集合x中的元素个数显然P是一个Ng×Ng大小的标准矩阵;若两像素点的空间间隔距离为d且与坐标横轴形成的夹角为θ,则可获得不同间距及角度下的灰度共生矩阵P(i,j,d,θ)。

以图中所示的计算实例说明共生矩阵的应用情况:其中(a)展示了原始图像的灰度值分布特征;(b)则通过设定相邻间隔d=1的方向参数来体现从左向右变化趋势;(c)进一步分析了对角线方向上的纹理特征;(d)研究了垂直方向的变化特性;(e)最后探讨了反对角线方向上的空间关系特征。

一种高效手段是以基于灰度级的空间相关矩阵即所谓的共生矩阵来进行纹理特征提取

在粗纹理区域中其对应的共生矩阵中的m(h,k)值会较为集中在主对角线附近

参考文献:高分辨率卫星影像中阴影的自动提取与处理,许妙忠余志惠。

http://apps.hi.baidu.com/share/detail/37069002

共生矩阵基于两处位置像素对的概率密度函数进行定义,在图像处理领域中被广泛采用。它不仅反映了图像亮度值的变化情况,并且能够体现具有相同或相近亮度像素在其空间布局上的分布规律;其本质是对图像亮度变化的一种二阶统计度量工具,在纹理特征分析中被视为构建基础模型的重要工具。

一幅图像的灰度共生矩阵能够体现图像灰度在空间方向、间距以及变化程度等方面的综合信息,并对分析图像局部模式及其排列规律具有重要意义。

定义函数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),其中元素mhk代表的是h灰度水平与k灰度水平上相距(Δx, Δy)像素对出现的具体次数。
对于具有较大尺度结构(粗纹理)的部分而言,在其对应的共生矩阵中会发现mhk值主要集中在主对角线附近;而对于较小尺度结构(细纹理)的部分,在其对应的共生矩阵中则会发现mhk值较为分散地分布在各个可能的位置上。

为了更好地用共生矩阵来描述纹理特征,在共生矩阵中提取若干能够反映其特征的参数指标

(1)能量指标被定义为灰度共生矩阵各元素平方之和,并因此也被称作能量指标(Energy),它反映了图像中灰度分布的均匀性以及纹理复杂程度。当所有灰度共生矩阵中的元素数值相同时,则该指标取最小值;反之,在部分区域具有较大数值时,则该指标显著增大。若灰度共生矩阵中的元素呈现高度集中性,则该指标较大。较大的该指标通常对应于较为均匀且具有规律性的纹理特征。

(2)对比度值:CON(即 Gray Difference Ratio),它表征了图像的清晰程度以及纹理结构的复杂深度。当纹理沟纹越深时,在形态学 Opening 运算中的对比度值越大(即 Gray Difference Ratio 增大),视觉呈现更加清晰明了;反之,则在形态学 Opening 运算中的对比度值越小(即 Gray Difference Ratio 减小),此时图像中的沟纹区域较为平缓模糊;当灰度差异较大的像素对数量越多时,在形态学 Opening 矩阵中与主对角线偏离程度较大的元素值增大时(即 Gray Difference Matrix 中远离主对角线元素绝对值增大),CON 值也随之增大。

(3)相关:该方法衡量空间灰度共生矩阵元素在行或列方向上的相似性程度;从而反映图像局部灰度的相关性大小。当所述矩阵元素数值均匀相等时,则该方法得出的相关系数较大;反之,则数值差异越大导致计算结果越小。若所考察图像中含有水平方向纹理特征,则该方法对水平方向的空间共生矩阵计算得到的相关系数会显著高于其他方向的空间共生矩阵

(4)熵:衡量图像所包含的信息量。其中纹理特征也被视为图像的重要组成部分,并且是一个反映图像纹理不确定性的重要指标。具体而言,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等时,在空间位置上的像素对具有最大的随机性排列且其对应的共生矩阵中的数值几乎相等于零,则表明该区域的空间分布较为均匀;反之,则表明该区域的空间分布较为复杂和不均匀;此时熵值较高;相反地,则表明该区域的空间分布较为均匀和有序;此时熵值较低。

(5)逆差距:衡量图像纹理的同质性,并表征图像纹理局部变化的程度。其值越大则表明图像不同区域间的相似程度较高。

其它参数:

中值

协方差

同质性/逆差距

反差

差异性

二阶距

自相关

当图像某区域的方差较小时,则该区域的灰度值占据主导地位;反之,在该区域方差较大时,则主要由纹理特征所主导。而纹理则与局部灰度以及它们的空间排列方式紧密相关,在识别目标和感兴趣区域时发挥着至关重要的作用

灰度共生矩阵描述了灰度的空间依赖性特性,在特定纹理模式下刻画像素灰度间的空间关系格局。然而该方法存在局限性即未能充分捕捉局部灰度图形的独特属性特征因此在较大尺寸局部区域应用效果欠佳。灰度共生矩阵是一种方阵其维度与图像中的灰度级数量一致矩阵元素(i,j)代表在图像中其中一像素点具有i值另一像素点具有j值且两者间距为d方向为A的情形出现次数统计结果总共有四种方向选择分别为0° 45° 90°及135°通常默认情况下默认情况下默认情况下默认情况下默认情况下默认情况下默认情况下默认情况下默认情况下通常情况下的标准做法是将图像的原始256级灰度缩减至较小范围以便于纹理特征提取这是因为当窗口尺寸增大时虽然能更好地反映纹理特性但在计算过程中会带来显著的计算量增加以及边界区域误判率上升等问题因此在进行纹理特征提取前必须对图像进行直方图规定化处理以减少图像的整体亮度范围一般规定化后的图像维度设定为8位或16位根据具体情况选择最合适的参数组合以平衡计算效率与分类准确性需求在此研究中为了全面提取纹理特征我们计算并使用了14种基于灰度共生矩阵的方法包括纹理二阶距纹理熵纹理对比度等

基于灰度共生矩阵的方法能够提取多种纹理特征,并对图像进行深入分析。通过该方法计算了基于灰度共生矩阵的14种纹理特征包括但不限于:纹理二阶矩、纹理熵、纹理对比度因子以及纹理均匀性指标等关键参数。这些统计量涵盖了不同角度下的图像特性从而为后续的图像识别任务提供了丰富的描述信息。其中还包括如共生均值、共生方差及熵等重要的统计量指标以全面反映图像的空间分布特性。

目前关于遥感影像中纹理特征的理解存在分歧。人们通常将其归类为结构、纹路或模式等不同的术语。Pickett指出纹理是通过可变间隔排列形成具有重复性特征的空间结构。HawKins进一步提出[6]:纹理由三种主要特性组成:局部序列性反复出现、非随机分布以及整体均匀的一致性。LiWang等[7]指出: texture can be defined as a set of elementary components that collectively describe the visual patterns within an image.

其周围八个方向上的特征响应。纹理特征有时呈现明显的特点,在特定区域内通常会以某种基本图形呈现周期性分布的特点;例如,在大面积森林覆盖地区影像呈现出斑点式的纹理结构,在沙漠地区则形成链状和新月形等形态;而有时候 texture 特征则较为隐晦且不易察觉,并表现出不稳定性和不确定性;通常而言前者 texture 比较均一 后者 texture 则较为复杂 [9]

在图像处理领域中将纹理定义为一个区域特性这一概念具有深远的意义其本质是对图像像素空间分布关系的定量表征这种参数化描述不仅能够反映局部细节还能够体现整体结构这使得纹理参数能够有效地综合反映图像的空间信息

%**************************************************************************

% 图像检索——纹理特征

基于共生矩阵进行纹理特征提取的方法采用了五个不同角度的参数设置:d=1以及θ=0°、45°、90°和135°。这些设置共同构成了完整的纹理描述框架。所处理的图像采用了256级灰度分辨率,并且所有的计算均依据《基于颜色空间和纹理特征的图像检索》中的相关理论展开。函数定义为T = Texture(Image),其中输入变量Image用于接收待处理图像数据;输出结果T则表示一个八维的纹理特征行向量。

第 1 步

说明

%————————————————————————–
%2.通过减少计算量实现对原始图像灰度级的压缩处理,并将其 Gray 值划分为共 16 个等级
%————————————————————————–
for循环变量i从= 1M遍历
for循环变量j从= 1N遍历
for循环变量n从n= 256/{}^{/}{}_{\text{}}{}^{/}{}_{\text{}}{}^{/}{}_{\text{}}}n= {}^{/}{}_{\text{}}{}^{/}{}_{\text{}}{}^{/}{}_{\text{}}}步长为{}^{\times }{}_{\text{}}}{}/^{\times }
若满足条件\left({n-}{^{\times }}{\right)}^{\times }{\leqslant }\text{Gray}\left(i,j\right){<}\left({n-}{^{\times }}{\right)}^{\times }{\times }+^{\circ }
则执行操作\text{Gray}\left(i,j\right)= {n-}{^{\times }}
endif
endfor
endfor
endfor

以下是基于给定规则对文本的改写

%%---------------------------------------------------------
% 对共生矩阵归一化
%%---------------------------------------------------------
for n = 1:4
P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n)));
end

%-------------------------------------------------------------------------- %

以下是符合要求的文本改写

以上改写遵循以下原则

%--------------------------------------------------------------------------
%计算能量、熵、惯性矩等的均值和标准差作为最终8维纹理特征
%--------------------------------------------------------------------------
T₁等于E的平均值;T₂等于E的标准差;
T₃等于H的平均值;T₄等于H的标准差;
T₅等于I的平均值;T₆等于I的标准差;
T₇等于C的平均值;T₈等于C的标准差;

在计算灰度共生矩阵之前阶段,请您做好图像量化的处理工作,在此过程中建议采用将原始图像由256梯度提升至128梯度的技术。其中一种常见的方式是采用线性化的方法;然而这种纯线性化的方式可能会导致对原始纹理特征的人为模糊;鉴于此,请问有没有其他更适合实际应用且能够较好保留纹理细节的方法?

图像的灰度共生矩阵GLCM(matlab 函数帮助)

Gray-level co-occurrence matrix from an image

图像的灰度共生矩阵

灰度共生矩阵是以像素间距与角度为基础构建的一种矩阵函数。该方法通过计算图像内固定间距与特定方向上两像素点灰度值的相关程度,从而综合反映了图像在空间方向、间隔大小、变化速率以及变化快慢等方面的特征。

The approach involves calculating glcm using the graycomatrix function with image I as input. glcms are determined by applying the graycomatrix function to image I with parameters param1 set to val1 and param2 set to val2, etc. [glcms, SI] are returned when the graycomatrix function is applied to ...

描述

由于动态计算图像GLCM区间所需的时间成本较高,在实际应用中我们通常会先对输入进行预处理以减少计算负担

下图详细说明了灰度共生矩阵的求解过程,在以坐标(i,j)=(1,1)为例的情况下,在GLCM(Γ)中参数设置为(Γ=4)时的结果表明:当Γ=4时,在该位置处出现次数最多的组合是灰度等级均为4的情况;而当Γ=5时,则出现了灰度等级分别为3和4的情况

该函数用于生成基于给定图像I和一系列参数设置(param1, val1; param2, val2; ...)的灰度共生矩阵。

参数

GrayLimits 由两个元素构成,在图像中用于定义灰度映射范围;当其被设定为空数组[]时,则将基于图像I中的最小和最大亮度值来确定 GrayLimits

'NumLevels' 是一个整数参数,在图像处理中用于表示将图像亮度值标准化的操作。具体而言,在 NumLevels 设置为某个具体数值时(例如 8),系统会使得输入图像 I 的亮度值被限制在 1 至 NumLevels 的范围内。这一参数的选择不仅影响了后续计算得到的结果质量(如构建的大致大小),还直接决定了生成的灰度共生矩阵(GLCM)的具体规模

'Offset' 上面有解释,是一个p*2的整数矩阵,D代表是当前像素与邻居的距离,通过设置D值,即可设置角度
Angle Offset
0 [0 D]
45 [-D D]
90 [-D 0]
135 [-D -D]

示例:

生成灰度共生矩阵G并计算其对应的空间信息熵SI值的同时,
定义二维灰度矩阵I如下:
I = [1,1,5,6,8,8;
2,3,5,7,0,2;
0,2,3,5,6,7];
调用graycomatrix函数生成灰度共生矩阵并设置参数:
'NumLevels'为9,
'G'为用于标准化的空间加权函数,
输出结果存储在变量对[G SI]中。

生成 gray-scale image I 的 gray-level co-occurrence matrix (GLCM)。
读取 gray-scale image I。
构造 glcm 对象用于生成 gray-level co-occurrence matrix(GLCM),并设置 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 = Σp(i,j)/(1 + (i - j)²),该指标衡量了纹理清晰度与规则性的程度。具体而言,在图像中具有良好的清晰度和规律性特征,并且能够被精确描述时,其值较大;而当图像纹理混乱且难以用语言准确描述时,则数值较小。

灰度共生矩阵被称作一种基于对灰度空间相关特性的深入分析而形成的工具,在纹理分析领域具有广泛的应用

灰度共生矩阵被用来统计图像中维持一定间距的两象素各自具有一定的灰度状况。

从图像中任取一点(x, y),以及偏离该点的另一点(x+a, y+b)。设该两点处的灰度值分别为g₁和g₂。令点(x, y)在整个画面上自由移动,则可获得一系列(g₁, g₂)组合。这些组合的数量为k²种。对于整个图像区域内的所有可能组合(g₁, g₂),统计每一种对出现的频次,并按行优先的方式排列成一个二维矩阵形式。随后将这些频次数据归一化为出现的概率P(g₁,g₂),这样的矩阵称为灰度共生矩阵或联合概率矩阵。在选取不同的(a,b)差分值时,请依据纹理特征的空间周期性分布规律来选取合适的差分步长参数(a,b),其中较为细致的纹理特征应选取较小幅度的变化量如(1,0),(1,1),(2,0)等数值组合进行计算分析

为了便于直观地利用共生矩阵来描述纹理特征,在共生矩阵中提取一些能够反映其特征的参数时,默认情况下通常会采用以下几种典型的参数组合。

(1)能量指标被定义为灰度共生矩阵各元素平方之和,并因此也被称为能量指标。这一指标能够反映图像中灰度分布的均匀程度以及纹理细节的复杂程度。若灰度共生矩阵中的所有元素数值相同,则其 ASM 值较小;反之,在某些区域数值显著大于其他区域时,则其 ASM 值较大。当灰度共生矩阵中的元素呈现高度集中性时,则其 ASM 值较大,并且高 ASM 值通常表示图像具有较为均匀且有规律的变化纹理特征。

(2)对比度:表征了图像的空间明暗变化能力以及纹理结构复杂程度。它们的分布密度越高,则其对比程度越高;反过来说则相反。灰度差异即为反映在不同区域的明暗变化范围大小;具体而言,在整个图像中明暗区域的变化幅度越大(即对应区域间的亮度差或对比强度增加),这个指标就会增大。在构建灰度共生矩阵的过程中(即gray-level co-occurrence matrix, 简称GLCM),当远离主对角线的位置上的元素值增大时(即它们与主对角线相比的位置偏移量增大),计算得到的结果CON也会随之增大

(3)相关:该相关值衡量灰度共生矩阵元素在行或列方向上的相似程度。由此可知,相关值大小表现在图像中局部灰度的相关性上。当矩阵元素值一致取相同值时,则相关值较大;反之,则反之:如果矩阵像元值差异显著,则相关值较小。特别地,在图像中含有水平纹理特征时,则水平方向的共生矩阵计算得到的COR值将大于其他方向的COR数值。

(4)熵:作为图像信息量的一种度量指标,在实际应用中也被用来表征纹理特征的基本特性之一;其定义基于统计学中的不确定性概念;在空间位置上像素对的空间变化具有最大不确定性且数值趋近于均匀分布的情况下(即空间共生矩阵中的元素值趋于相等),此时其对应的熵值达到最大;这一指标主要反映了纹理分布的空间非均匀性和复杂性

(5)逆差距: 表征图像纹理的一致性,并评估图像纹理区域间的差异程度。当数值较大时,则表明该区域整体呈现高度一致的状态。

其他参数包括中间值, 变异性, 一致性/Homogeneity>, 对比度 , 不同度, 熵 , 第二矩 , 以及自相关系数 .

通过调用imread函数读取文件路径为F:/1021-4.bmp的图像对象,并将其赋值给变量image(此处需注意避免与matlab内置变量名conflict)。
%通过graycomatrix函数生成该图像的灰度共生矩阵
通过graycomatrix函数生成该图像的灰度共生矩阵,并将结果存储在变量glcms中以及对应的一致性指标SI中存储于SI变量中
%避免与matlab内置函数名冲突的操作说明
%通过graycoprops函数获取基于上述得到的灰度共生矩阵的各项统计特征
调用graycoprops函数获取基于glcms对象的各项统计特征包括Contrast、Correlation和energy三个指标并将其存储于stats变量中

以下是对输入文本的同义改写

以下是根据给定规则对原始文本的详细改写

%计算角二阶矩 f1
f1=p2.^2;
f1=sum(f1(:))

% 计算相关度 f₂
color=0:(g-1);
计算目标数组的均方误差。
初始化目标数组。
计算总和。
求取初始值。
创建网格并计算每个网格点的目标值。
计算分子部分。
求取分母并完成相关系数的计算。

%计算墒 f3
pp=(p2.*log2(p2+eps));
f3=-sum(pp(:));

%计算对比度 f4
f4=0;
k_f4=0;

for k=1:g-1
for i=1:g-1
if(i+k)<=g
k_f4=k_f4+2p2(i,i+k);
end
end
f4=f4+k_f4
k^2;
end

%计算逆矩阵 f5
f5=0;
for k=1:g
for j=1:g
f5=f5+p2(k,j)/(1+(j-k)^2);
end
end

Matlab中实现灰度共生矩阵

%**************************************************************************
% 图像检索——纹理特征
%基于共生矩阵纹理特征提取,d=1,θ=0°,45°,90°,135°共四个矩阵
%所用图像灰度级均为256
%参考《基于颜色空间和纹理特征的图像检索》
%function : T=Texture(Image)
%Image : 输入图像数据
%T : 返回八维纹理特征行向量
%**************************************************************************
% function T = Texture(Image)
Gray = imread('d:\result5.bmp');
[M,N,O] = size(Gray);
M = 128;
N = 128;

%--------------------------------------------------------------------------
%1.将各颜色分量转化为灰度
%--------------------------------------------------------------------------
% Gray = double(0.3Image(:,:,1)+0.59Image(:,:,2)+0.11*Image(:,:,3));

%--------------------------------------------------------------------------
%2.为了降低计算复杂度,对原始图像进行灰度级压缩处理,将Gray值压缩为16个等级
for循环变量i从1遍历至M
for循环变量j从1遍历至N
for循环变量n从1遍历至(256/16),即第(n-1)个到第n个量化区间
如果 Gray(i,j)的值落在上述区间内
则将 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

%--------------------------------------------------------------------------

以下是改写后的文本

改写说明

%--------------------------------------------------------------------------
%计算能量特征、熵特征、惯性矩特征、相关均值参数和标准偏差参数作为最终8维纹理特征
%--------------------------------------------------------------------------
a1 = mean(E)
b1 = sqrt(cov(E))

a2 = mean(H)
b2 = sqrt(cov(H))

a3 = mean(I)
b3 = sqrt(cov(I))

a4 = mean(C)
b4 = sqrt(cov(C))

使用sprintf函数生成指定方向的熵分布情况如下:
在'0°、45°、90°、135°'四个方向上计算得到的熵值分别为:
H₁ = %.6f;H₂ = %.6f;H₃ = %.6f;H₄ = %.6f
其中'H₁'代表'0°'方向的熵,
'H₂'代表'45°'方向的熵,
'H₃’代表‘90度’的方向的熵,
'H₄’代表‘135度’的方向的熵

灰度共生矩阵属于描述纹理的一种手段,并非直接作为特征出现。
特别地,在灰度等级较大的情况下。
然而,在计算能量或其他二次特征时,则能够表征图像的一些特性。
那么接下来该如何处理?
然后将这些其他类型的特征作为输入数据。
在提取一副图像的纹理特征时所得到的新矩阵与其原始矩阵在维度上是否相同?
通常情况下两者维度并不相同;为了有效提取更有意义的信息而不至于信息量过于冗余,则通常会将其维度降低。

通常会采用降维方法来处理数据。在Matlab中的灰度共生矩阵函数中是否存在降维操作?或者是否有必要在代码中手动添加这些降维操作?如果不考虑这点可能会导致不同结果!如果你真正理解了共生矩阵的生成过程那就彻底明白了!

Gray-level co-occurrence matrix from an image

图像的灰度共生矩阵

灰度共生矩阵是一种基于像素间距离与角度关系的矩阵函数,在图像处理领域具有重要应用价值。该方法通过计算图像中不同间距与不同方向上两组像素灰度值之间的相关程度,并结合这些数据来综合分析图像的空间特征及其变化特性。

计算方法:
计算得到 glcm = graycomatrix(I)
调用 graycomatrix 函数并计算得到 glcms = graycomatrix(I,param1,val1,param2,val2,...)
函数调用并返回两个输出 glcms 和 SI

生成图像I的灰度共生矩阵GLCM的过程为:使用graycomatrix函数计算得到glcms值。其中,
glcms是由计算两灰度值在图像I中的水平相邻次数所得出的结果(虽然不一定仅限于水平方向,
该参数可通过Offsets调整以选择不同方向:例如[0 D]表示仅考虑水平方向,
[-D D]表示考虑右上角45°方向,
[-D 0]表示考虑垂直方向90°,
[-D -D]表示考虑左上角135°方向),而GLCM中的每一个元素(i,j)则代表了
灰度i与灰度j在图像中水平相邻出现的次数。

由于动态获取图像GLCM区间会带来较高的计算成本,在实际应用中我们通常会采用以下措施:首先将输入图像的灰度值映射至目标区间I所对应的灰度范围;若输入图像为二值型,则基于此生成一个2级的空间邻域矩阵;若输入图像为深度灰度型,则生成8级GLCM矩阵;其中其 Gray 级别参数直接影响 GLCM 的大小尺寸

下图直观地展示了如何求解灰度共生矩阵,并取( )位置为例进行说明。其中:

  • GLCM( )值等于 表明仅存在一对相邻的像素对具有相同的灰度级。
  • 而GLCM( )等于 则由于有两组这样的相邻像素对而产生结果的变化。

计算得到的graycomatrix特征矩阵glcms基于图像I及其灰度参数(param1,val1),(param2,val2),...进行计算得到

参数

'GrayLimits' 由两个元素构成的向量 代表图像中灰度映射的范围 若设置为空数组[] 则将基于图像I的最大和最小灰度值来计算'GrayLimits'

设NumLevels为一个整数,并表示用于对图像亮度进行归一化处理的区间范围。例如,在设置NumLevels为8时,则意味着将图像I中的亮度值被映射至1至8的范围内,并且这也直接影响了生成相应的灰度共生矩阵所占用的空间规模

Offset 是一个 p×2 的整数矩阵,在此定义中,
Angle 值由 D 决定,
通过设定 D 的不同取值,
即可设定角度的不同方向。
具体来说,
当 Angle = 0°时,
其对应的 Offset 矩阵为 [0, D];
当 Angle = 45°时,
其对应的 Offset 矩阵为 [-D, D];
当 Angle = 90°时,
其对应的 Offset 矩阵为 [-D, 0];
而当 Angle = 135°时,
其对应的 Offset 矩阵为 [-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)代表归一化的灰度共生矩阵
该统计量用于衡量图像的灰度分布均匀性和纹理复杂程度的重要指标。当图像呈现较为复杂的纹理特征且灰度分布较为均匀时(即p(i,j)具有较高的归一化值),其能量值较高;反之,则能量值较低。

熵(entropy, ENT)是一种衡量图像信息含量的方法;其计算公式为 ENT=\sum p(i,j)*(-\ln p(i,j));该值反映了图像的信息含量及其复杂程度:当复杂程度较高时,则 entropy 值较大;反之则较小。

反差分矩阵(Inverse Differential Moment, IDM)表征了纹理图像的空间特性特征。该矩阵通过计算像素间梯度变化的程度来量化纹理细节信息:当图像中纹理清晰且排列有序时(即具有较高的清晰度和较强的规律性),其计算出的空间二阶矩会较大;反之,在纹理杂乱无章且难以用简单的数学模型描述的情况下(即数值较低),其计算出的空间二阶矩会较小

http://apps.hi.baidu.com/share/detail/19780877

灰度-梯度共生矩阵纹理特征分析不仅可以用灰度信息本身进行描述,还可以通过灰度变化的梯度信息来补充分析.基于灰度与梯度的共生矩阵方法,通过综合考虑像素灰度与其边缘梯度的联合统计分布特性,能够有效地提取纹理特征.该方法计算的小梯度优势、大梯度优势以及灰度和梯度的分布不均匀性等 fifteen个纹理特征量,具体包括GrayNumLevels参数、GradsNumLevels参数以及Method='sobel'设置下的特征提取:SmallGradsDominance小梯度优势、BigGradsDominance大梯度优势、GrayAsymmetry灰度分布不均匀性、GradsAsymmetry梯度分布不均匀性、Energy能量、GrayMean灰度平均、GradsMean梯度平均、GrayVariance灰度方差、GradsVariance梯度方差、Correlation相关性、GrayEntropy灰度假设值以及GradsEntropy梯度过熵等.此外,还包括Energy混合熵Inertia惯性DifferMo等其他相关参数

灰度共生矩阵法即通过计算灰度图像获得其共生矩阵随后再利用该共生矩阵求取其部分特征值这些特征值分别用来表示图像中某些纹理特征(而纹理的定义依然是一个难题)。灰度共生矩阵能够综合反映图像中灰度信息在特定方向上相邻像素间的分布情况以及变化程度它构成了分析图像局部模式及其排列规律的基础。

对于掌握灰度共生矩阵的概念而言,在理解过程中需明确三个关键参数:梯度方向、位移量以及灰度级数。

1、 方向

通常会在多个不同方向上进行计算。常见的选取方式包括0度、45度、90度以及135度。这种方法对于全面考虑所有可能的方向并不适用。

定义如下:

纹理特征分析的灰度共生矩阵(GLCM)

水平方向为0°垂直的90°,以及45°和135°(大致如上图所画)

2、偏移量(offset:下面例子中,取值为1来帮助理解)

  1. Gray-level co-occurrence matrix's order and the gray-level intensity values' order are consistent, meaning that when the gray-level intensity values have an order of N, the gray-level co-occurrence matrix is an N×N matrix.
0 0 0 1 2
0 0 1 1 2
0 1 1 1 1
1 1 2 2 1
1 2 2 1 0

假定offset为1,取0°方向求共生矩阵时:

最初取点(1,1) 和(1,2) ,此时在频度矩阵的(0,0)处加1((1,1)点的灰度值为0,(1,2)点的灰度也为0);

然后取(1,2) 和(1,3)点,此时也在频度矩阵的(0,0)处加1;

接着取到(1,3) 和(1,4)点,此时也在频度矩阵的(0,0)处加1;

接着取到(1,4) 和(1,5) 点,此时在频度矩阵的(1,0)处加1((1,5)点的灰度值为1 ,(1,4)点的灰度为0)。

直到每一行都取遍即可。

假定offset为1,取45°方向求共生矩阵时:

最初取点(1,1) 和(2,2) ,此时在45°方向频度矩阵的(0,0)处加1((1,1)点的灰度值为0,(2,2)点的灰度也为0);

然后取(1,2) 和(2,3)点,此时在45°方向频度矩阵的(0,1)处加1;

接着取到(1,3) 和(2,4)点,此时也在45°方向频度矩阵的(0,1)处加1;

接着取到(1,4) 和(2,5) 点,此时在45°方向频度矩阵的(1,2)处加1((1,4)点的灰度值为1 ,(2,5)点的灰度为2)。

然后下一行,直到每一行合适的值都取遍即可。

另两个方向的情况相似。

最后得到如下四个频度矩阵

10 0 1 2
0 3 3 0
1 1 5 4
2 0 2 2
11 0 1 2
0 1 5 0
1 0 3 5
2 1 1 0

0°方向频度矩阵 45°方向频度矩阵

10 0 1 2
0 3 3 0
1 1 6 3
2 0 2 2
10 0 1 2
0 3 0 0
1 0 7 2
2 0 2 2

90°方向频度矩阵 135°方向频度矩阵

在用matlab编程时由于matlab的矩阵的下脚标是从1开始的所以矩阵的形式类似于下面的形式:

p(I(i,j)+1,I(i,j+1)+1)= p(I(i,j)+1,I(i,j+1)+1)+1;这是0°方向的计算式

这里,灰度阶数即从最低的0变成最低为1

四个方向的计算式,大致如下:

p1(IN(M,N)+1,IN(M,N+1)+1)= p1(IN(M,N)+1,IN(M,N+1)+1)+1;%是共生矩阵0度的计算式

p1(IN(M,N)+1,IN(M-1,N+1)+1)= p1(IN(M,N)+1,IN(M-1,N+1)+1)+1;%是45度的计算式

p1(IN(M,N)+1,IN(M-1,N)+1)= p1(IN(M,N)+1,IN(M-1,N)+1)+1;%是共生矩阵90度的计算式

p1(IN(M,N)+1,IN(M-1,N-1)+1)= p1(IN(M,N)+1,IN(M-1,N-1)+1)+1;%是135度的计算式

现在各个方向统计完毕,然后将频度矩阵/总频次即得共生矩阵

这时候得到四个共生矩阵,分别是

纹理特征分析的灰度共生矩阵(GLCM)

纹理特征分析的灰度共生矩阵(GLCM)

纹理特征分析的灰度共生矩阵(GLCM)

纹理特征分析的灰度共生矩阵(GLCM)

其编程实现,可参见如下代码:

%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

列表项超链接标记(http://archive.cnblogs.com/a/2115266)()

全部评论 (0)

还没有任何评论哟~