2007-07-18 00:26:00 chenshengbj 阅读数 1738

       面向对象是现代软件开发的思想,是当前IT界关注的重点,是20世纪90年代以来软件开发方法的主流。面向对象的 概念和应用不仅仅限于程序设计和软件开发,已经扩展到很宽的范围。

       面向对象的影像分析技术即使在20世纪70年代就应用在遥感影像的解译中。Ketting and landgrebe(1976)提出了同质性对象提取的优点,并提出了一种分割算法称为ECHO(Extraction and Classification of Homogenous Objects)。所谓面向对象方法,就是通过对影像的分割,使同质像元组成大小不同的对象,每个对象都有光谱、形状、纹理、空间拓扑关系、层次等属性。面向对象的遥感影像分析方法把遥感影像分成不同的同质性对象,每个对象都有描述光谱、形状、结构、纹理等信息的属性,对象之间还有相邻、包含等各种空间关系以及类似面向对象软件开发中继承等关系。其分析实体,不再是单个的象素,而是由多个像素组成的有意义的影像对象,包含了影像对象的光谱、语义与纹理等信息。面向对象的影像分析采用一种影像多级分割的法则,以任意尺度生成属性信息类似的影像多边形对象(Faber and Forstner,1999),运用模糊数学方法获得每个影像对象的属性信息,以影像对象为信息提取的基本单元,实现类别信息自动提取的目的。 

       

     

参考文献:

[1]明冬萍.高分辨率遥感特征基元提取与格局判别方法研究.中国科学院地理科学与资源研究所2006年博士论文
[2]黄慧萍.面向对象影像分析中的尺度问题研究.中国科学院遥感应用研究所2003年博士论文

2016-09-03 10:14:47 baidu_35561918 阅读数 2980

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

 

英文名称  Texture Analysis;

学术解释

  指通过一定的图像处理技术提取出纹理特征参数,从而获得纹理的定量或定性描述的处理过程.纹理分析方法按其性质而言,可分为两大类:统计分析方法和结构分析方法

学术定义

  纹理是一种普遍存在的视觉现象,目前对于纹理的精确定义还未形成统一认识,多根据应用需要做出不同定义.

  定义1 按一定规则对元素(elements)或基元(primitives)进行排列所形成的重复模式.

  定义2 如果图像函数的一组局部属性是恒定的,或者是缓变的,或者是近似周期性的,则图象中的对应区域具有恒定的纹理.

作用分析

  对这种表面纹理的研究称为纹理分析.它在计算机视觉领域有着重要的应用.

  在机械工程中对机械零件加工表面的这种凹凸不平性开展研究同样具有重要的实践意义。

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

  纹理分析在遥感图像、 X射线照片、细胞图像判读和处理方面有广泛的应用。关于纹理,还没有一个统一的数学模型。它起源于表征纺织品表面性质的纹理概念,可以用来描述任何物质组成成分的排列情况,例如医学上X 射线照片中的肺纹理、血管纹理、航天(或航空)地形照片中的岩性纹理等。图像处理中的视觉纹理通常理解为某种基本模式(色调基元)的重复排列。因此描述一种纹理包括确定组成纹理的色调基元和确定色调基元间的相互关系。纹理是一种区域特性,因此与区域的大小和形状有关。两种纹理模式之间的边界,可以通过观察纹理度量是否发生显著改变来确定。纹理是物体结构的反映,分析纹理可以得到图像中物体的重要信息,是图像分割特征抽取和分类识别的重要手段。对于空间域图像或变换域图像(见图像变换),可以用

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

  统计纹理分析寻找刻划纹理的数字特征,用这些特征或同时结合其他非纹理特征对图像中的区域(而不是单个像素)进行分类。图像局部区域的自相关函数、灰度共生矩阵、灰度游程以及灰度分布的各种统计量,是常用的数字纹理特征。如灰度共生矩阵用灰度的空间分布表征纹理。由于粗纹理的灰度分布随距离的变化比细纹理缓慢得多,因此二者有完全不同的灰度共生矩阵。

  结构纹理分析研究组成纹理的基元和它们的排列规则。基元可以是一个像素的灰度、也可以是具有特定性质的连通的像素集合。基元的排列规则常用树文法来描述。

纹理基元与影调

  一个纹理基元(不严格地说)是一个具有一定的不变特性的视觉基元。这些不变特性在给定区域内的不同位置上,以不同的变形和不同的方向重复出现。纹理基元最基本的不变特性之一是区域内象素的灰度分布,而影调也是表示灰度的明暗分布。

  因此,我们认为影调和纹理不是独立的概念:当在图象的一定面积区域中影调基元的变化很小时,这个区域的主导特性是影调。当在小面积区域中含大量不同的影调,这个区域占主导的特性是纹理。

 

spatial gray level co-occurrence matrix  空间灰度共生矩阵(GLCM)
spatial gray level dependence matrix      空间灰度相关矩阵
spatial gray-level dependence matrices  空间灰度独立矩阵

Texture

纹理特征建立在子对象基础之上,这就意味着,必须有一个对象等级架构去使用他们,精确的分割是使用形状纹理特征的基础,子对象的分割要尽量有意义
1.考虑子对象光谱特征的纹理
2.考虑子对象形状特征的纹理
3.基于灰度共生矩阵的纹理

1.Layer Value Texture Based on Subobjects

—【Mean of sub-objects: stddev】子对象均值标准差,对象分割的子对象更隔阂,则该特征更有意义;

—【Avrg. mean diff. to neighbors of subobjects】通过一个对象内部子对象在某一个图层(k)上与邻域(d)对象的差异取平均来进行对比,反应该对象内部差异的平均值。

2.Shape Texture Based on Subobjects

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

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

—【Density of subobjects: mean 】子对象密度平均值(参考对象形状特征中的Density );

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

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

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

—【Direction of subobjects: mean 】方向权重是相关子对象的的不对称性,越不对称,对主方向的影响越大,算法首先比较所有子对象主方向在90-180之间的做(direction-180),即顺是真旋转180度,然后计算等级距离d下的所有子对象的主方向(权重)均值;

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

3.Texture After Haralick P.152

 灰度共生矩阵(http://blog.csdn.net/Redeom/archive/2008/04/17/2301823.aspx

        共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。
        一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。
      设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,θ)。

      共生矩阵的一个计算例子见下图,其中(a)为原始图像的灰度值,(b)为从左到右方向上的共生矩阵,θ=0,(c)为从左下到右上方向上的共生矩阵,θ=45,(d)为从下到上方向共生矩阵,θ=90,(e)为从右下到左上方向上的共生矩阵,θ=135,相邻间隔d=1。


       纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的,因为图像中相距(Δ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>

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

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),其中位于(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 P(m,n,1) = P(m,n,1)+1;
P(n,m,1) = P(m,n,1);
end
if i>1&j P(m,n,2) = P(m,n,2)+1;
P(n,m,2) = P(m,n,2);
end
if i P(m,n,3) = P(m,n,3)+1;
P(n,m,3) = P(m,n,3);
end
if i 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));

 

 

在计算灰度共生矩阵前,需要做影像的量化比如将256级影像量化为128级。有一种方法是线性量化,但是这种方法有可能对原始影像的纹理产生人为地影响,太“粗了”。所以想请教大家是否还有其他较好的影像灰度级量化的方法?

 

http://blog.csdn.net/linxue968/article/details/6034745

 

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

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))
反映了纹理的清晰程度和规则程度,纹理清晰、规律性较强、易于描述的,值较大;杂乱无章的,难于描述的,值较小

 

灰度共生矩阵就是一种通过研究灰度的空间相关特性来描述纹理的常用方法。

灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。

取图像(N×N)中任意一点(x,y)及偏离它的另一点(x+a,y+b),设该点对的灰度值为(g1,g2)。令点(x,y)在整个画面上移动,则会得到各种(g1,g2)。值,设灰度值的级数为,则(g1,g2)。的组合共有 k2种。对于整个画面,统计出每一种(g1,g2)值出现的次数,然后排列成一个方阵,在用(g1,g2)出现的总次数将它们归一化为出现的概率P(g1,g2),这样的方阵称为灰度共生矩阵。距离差分值(a,b)取不同的数值组合,可以得到不同情况下的联合概率矩阵。(a,b)取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取(1,0)、(1,1)、(2,0)等小的差分值。

 

   为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种:

   1)能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反, 如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均一和规则变化的纹理模式。

   2)对比度:反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。

   3)相关:它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大; 相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。

   4)熵:是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。

   5)逆差距: 反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。

        其它参数:中值<Mean>、协方差<Variance>、同质性/逆差距<Homogeneity>、反差 <Contrast>、差异性<Dissimilarity>、熵<Entropy>、二阶距< Angular Second Moment>、自相关<Correlation>

 

 

image=imread('F:/1021-4.bmp');
 %计算图像的灰度共生矩阵
[glcms,SI]=graycomatrix(image);
 %计算图像的灰度共生矩阵
stats = graycoprops(glcms,'Contrast Correlation energy')

 

 

%灰度共生矩阵纹理特征提取
%提取了三个特征参数。f1为角二阶矩,f2为相关度,f3为熵
clc
clear
tu=imread('nvxing19.jpg');
IN=rgb2gray(tu);              %灰度化
g=256;
[R,C]=size(IN);
p1=zeros(g);             %计算共生矩阵
for M=1:R
     for N=1:(C-1)
         p1(IN(M,N)+1,IN(M,N+1)+1)= p1(IN(M,N)+1,IN(M,N+1)+1)+1;
         p1(IN(M,N+1)+1,IN(M,N)+1)= p1(IN(M,N+1)+1,IN(M,N)+1)+1;
     end
end
p2=double(p1)/(M*N);             %归一化

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

% 计算相关度 f2
colour=0:(g-1);
m1=sum(p2)*colour(:);
m2=m1;
pp=sum(p2);
v1=((colour-m1).^2)*pp(:);
        v2=v1;
[m,n]=meshgrid(colour,colour);
pp=m.*n.*p2;
f2=(sum(pp(:))-m1*m2)/(v1+eps)*(v2+eps)

%计算墒 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+2*p2(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.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维纹理特征
%--------------------------------------------------------------------------
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方向上的能量依次为: %f, %f, %f, %f',E(1),E(2),E(3),E(4))  % 输出数据;
sprintf('0,45,90,135方向上的熵依次为: %f, %f, %f, %f',H(1),H(2),H(3),H(4))  % 输出数据;
sprintf('0,45,90,135方向上的惯性矩依次为: %f, %f, %f, %f',I(1),I(2),I(3),I(4))  % 输出数据;
sprintf('0,45,90,135方向上的相关性依次为: %f, %f, %f, %f',C(1),C(2),C(3),C(4))  % 输出数据;
 

灰度共生矩阵只是描述纹理的一种方法,其本身是不能作为特征的.
特别是灰度等级大的时候.
但是灰度共生矩阵的能量\相关等二次特征可以表征图像的一些特性.
问题一:接下来然后怎么办?
  接下来转化为其它的特征作为输入.
问题二:一副图像的纹理特征提取出来的矩阵和原来矩阵的维数是相同的还是不同的?
  一般不是相同的,一般要小,特征嘛,要不然不需要降维,直接让原图像作为原始特征.

 

一般是需要降维的,matlab中灰度共生矩阵函数中有降维的操作吗,还是需要自己写进去这些代码才会有降维发生?
非你有降维的操作,不然肯定是相同的!你若是理解了共生矩阵怎么得来的也就完全明白了~~


 

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))
反映了纹理的清晰程度和规则程度,纹理清晰、规律性较强、易于描述的,值较大;杂乱无章的,难于描述的,值较小。

 

 

http://blog.csdn.net/weiyuweizhi/article/details/5724050

 

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

 

 

灰度-梯度共生矩阵纹理特征分析既可用灰度本身的信息,又可用灰度变化的梯度信息。灰度-梯度共生矩阵纹理分析方法是用灰度和梯度的综合信息提取纹理特征,它考虑像素灰度与边缘梯度的联合统计分布。利用灰度-梯度共生矩阵我们计算了小梯度优势、大梯度优势、灰度分布不均匀性、梯度分布不均匀性、能量、灰度平均、梯度平均、灰度方差、梯度方差、相关、梯度熵,灰度熵、混合熵、惯性、以及逆矩差等十五个纹理特征量参数说明: GrayNumLevels 灰度级参数 GradsNumLevels 梯度级参数 Method='sobel' 梯度算子提取特征如下: SmallGradsDominance 小梯度优势 BigGradsDominance 大梯度优势 GrayAsymmetry 灰度分布不均匀性 GradsAsymmetry 梯度分布不均匀性 Energy 能量 GrayMean 灰度平均 GradsMean 梯度平均 GrayVariance 灰度方差 GradsVariance 梯度方差 Correlation 相关 GrayEntropy 灰度熵 GradsEntropy 梯度熵 Entropy 混合熵 Inertia 惯性 DifferMo
 

灰度共生矩阵法,顾名思义,就是通过计算灰度图像得到它的共生矩阵,然后透过计算这个共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。

对于灰度共生矩阵的理解,需要明确几个概念:方向,偏移量和灰度共生矩阵的阶数。

1、  方向

一般计算过程会分别选在几个不同的方向来进行,常规的是0°、45°、90°、135°,理论上的所有方向计算方法不可取。

定义如下:

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

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

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

3、灰度共生矩阵的阶数和灰度图像的灰度值的阶数是一致的,即当灰度图像的灰度值的阶数是N时,灰度共生矩阵为N*N的矩阵。

 

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

假定offset1,取0°方向求共生矩阵时:

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

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

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

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

直到每一行都取遍即可。

假定offset1,取45°方向求共生矩阵时:

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

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

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

接着取到(1,4) (2,5) 点,此时在45°方向频度矩阵的(12)处加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/

2014-10-20 17:43:04 happyswa 阅读数 391

三维重建的步骤

1  图像预处理

2  特征点匹配(立体视觉匹配)

(各种立体视觉匹配方法可以用于从两幅或者更多幅图像中重建高质量的3D模型,但,立体视觉只是可以用于从图像中推测形状的许多线索之一。)

3 三维重建



立体视觉匹配

1 稀疏匹配算法

基于轮廓和边缘,基本步骤:

提取输入图像的边缘和轮廓

匹配图像序列中的边界基元(逐对极线几何,临近性和)

2稠密匹配

相关概念

图像校正:校正输入图像之后,对应的水平扫描线就是极线,这样,就能够独立地匹配水平的扫描线或者在计算匹配分数时水平移动图像。

极线匹配:


2003-09-10 11:09:00 PercyLee 阅读数 1451

4、语言概念空间的语句基元符号体系(第二组Mi)

    973项目的一次论证会上,当我第一次公布57个基本句类表示式的时候,项目首席科学家、中科院自动化所所长马颂德教授(现任科技部副部长)在场下大声说,“我在你那本书上到处找这些表示式,就是没有找全,原来你保密。”这是马教授的过人之处,他并不是语言学家,而是图像信息处理专家,但他一下子抓住了HNC的要害。

    “语义块是句类的函数—句类表示式—基本句类57—混合句类3192”

这就是语言概念空间的语句基元符号体系的要点

    句类表示式的概念从哪里来?这可以从多个角度进行说明,今天我想讲的是:句类表示式不过是对“主谓宾定状补”概念的语义转换。

对“主谓宾”概念进行各种转换的研究可以说是近半个世纪来语言学研究的焦点,流派众多。其中最著名的应推乔姆斯基先生的转换生成公式

                    S=NP+VP

这个公式并不是语义转换,但终究是一个计算机可以把握的语句表示式,通过它,就可以让计算机把握“主谓宾”的概念了。从这个意义上说,乔姆斯基先生是第一位将语言学从“以人为本”转变到“以计算机为本”的先行者,而且他在策略上十分精明,先给出一个对印欧语系接近“鲁棒”标准的S=NP+VP通用表示式,然后用管辖(GB)理论加以缝补。

    直接从事“主谓宾”语义转换研究的有两位代表人物,一位是乔姆斯基的学生菲尔墨先生,另一位是乔姆斯基的对手山克先生。这两位先生都意识到主谓宾(SVO)之间存在某种函数关系,但都不明说,且回避“函数关系”的提法,分别用“格”和“概念从属”的术语来替代。为什么?因为如果直接采用函数关系的提法,而又写不出函数表示式,那将对论文的尽快发表产生不利影响。

    建立函数关系表示式是所有科学研究的共同追求目标,也是所有自然科学分支从最初无所不包的哲学中独立出来的标志。自然语言的语句能否建立某种形式的函数表示式?这当然是一个非常严肃而重大的课题。刚才说到的“格”和“概念从属”理论都试图探讨这一课题,并从主语和宾语是谓语的函数这一隐含假定着手。但这一隐含假定隐含着一个明显的失误。因为,主谓宾之间存在3种相互制约的关系,不能只管主谓、谓宾两种相互制约关系,而置主宾相互制约关系于不顾。这一失误的根源,不能不说是动词中心说(对印欧语系的语句是正确的形式概括)和配价语法理论(对语句现象的另一种正确概括)造成的。

    考虑到主谓宾三者之间都存在相互制约的关系,那就应该假定三者共同受到一个更基础的东西的制约,如果这一东西存在,并命名它为x,那么,就可以仿效乔姆斯基表示式写出下面的“语句块表示”:

               J(x)=[JK(x)]+[EK(x)]+[{fK}|]                HNC20

“语句块表示”是“语句的语义块表示”的简称,其意义是:句子J3种类型的语句单位—JKEKfK─的各自有限集合构成,符号“[ ]”表示有限集合。JKEK分别命名为广义对象语义块和特征语义块,合称主语义块,两者大体相当于NPVPfK命名为辅语义块,与某些PP相当,fK的括号{ }表示它不是必须单位。

    语句块表示HNC20与乔姆斯基表示式的根本区别,不在于用JK替代NP,用EK替代VP,并用JKEK两者的各自有限集合(包括空集)替代NPVP的递归性,而在于HNC假定JK和EK是某一自变量x的函数

于是,问题归结为,这个假定的x究竟是什么?HNC的答案是:句类。句类的字面解释是:语句概念联想脉络的类型,也叫语句级全局概念联想脉络,简称句类。

那么,句类如何划分?或者说句类划分的依据是什么?

答案是明确的,“作用效应链既是核心概念基元分类的总纲,又是语句分类的总纲。”这指的是语句的最高级分类。

作用效应链为6个环节,那么7个基本句类之说从何而来?

7个基本句类”仍然指的是语句的最高级分类,7=6+1,这“+1”来于亚里斯多德的语句命题说,“北京是中华人民共和国的首都”这样的典型命题句(基本判断句)不属于作用效应链的范畴。命题属于判断,“作用效应链+判断”也被称为广义作用效应链,这个术语不必深究,不过是为了叙述方便而已。

57组基本句类才是正规的说法,那么,“57”这个神秘的数字从何而来?

主要来于作用效应链的二级概念节点。这些概念节点的设计过程要同时考虑到基本句类划分的需要,上一节已对此作了扼要的阐述。但仍然觉得不够透彻,故这里引用拙著《HNC理论》中的一段话,虽然这段话大约属于难懂的典型之一,但只好滥竽充数了。

    六个主体基元概念二级节点的设计,不仅必须反映每一基元概念的总体特征,还应该考虑到每一基本句类的子类分类特征。这是主体基元概念二级节点设计的基本依据。

    所谓基元概念的总体特征是指与全局联想有关的内容。如作用就要联想到作用的承受和反应;效应就要联想到变化和结果;过程就要联想到开始和结束、因与果、趋向与转化以及进展性与重复性等;转移就要联想到发和收、入和出、起点和终点、转移的内容、工具和途径等。

    但是,并不是每一总体特征都具备构成句类子类的资格,我们只选择那些具备这一资格的特征充当二级节点,而将其他的特征放到0分行里。过程的内容(指运动、演变和生命过程)在0分行,而转移的内容(指物和信息)却构成转移的二级节点,道理就在这里。

HNC理论》pp85-86

那么,“57”这个数字等于广义作用效应链二级节点数量的总和么?否!“57”是基本句类表示式的“组”数,不是“个”数。“组”的划分,基于多方面的考虑,这里就从略了。应该说明的是,基本句类表示式有5级之分,但这个级别的意义相当于我国的教授,而不是行政干部。还应该说明的是,57”这一数字不是不可以变动的,我甚至欢迎HNC自身队伍里出现主张不同数字的流派。

 

4.1语句块表示的符号体系和符号化

上面阐释了语句块表示 HNC20 的物理意义,但这样的表示式仍然是计算机不可操作的,还需要将表示式中的3种语义块进一步符号化。符号化首先就要设计主语义块的符号基元以及他们的组合方式。

主语义块是句类的函数,那么,如何在主语义块的符号表示式中体现这一函数关系?最直截了当的办法是:一,用句类基元的定义域直接替代特征语义块的符号基元。二,把广义对象语义块的符号基元连接在特征语义块符号基元之后。这样,语义块与句类的函数关系就明确表示出来了。

句类基元的定义域就是广义作用效应链,作为句类的符号基元,需要重新约定相应的符号。HNC约定:广义作用效应链的7个环节分别用下列7个大写英文字母代表:

                  EÎ{X,P,T,Y,R,S,D}

E表示句类基元的通用符号,定义域中的具体句类基元符号,如过程P、转移T、关系R、状态S取自英语相应word的第一个字母,但作用与效应采用了特殊符号XY,这是由于考虑到两者的特殊地位。判断未取judgeJ,而取 decide D,那是从权,因为J已预定用于句子 juzi 的代码表示。用J表示句子,无疑是不智之举,但我认为,有必要将句类表示式与乔姆斯基的语句生成表示式区别开来,同时S是状态句类符号的自然之选,所以就横下心来,冒一次“天下之大不韪”了。

现在假定广义对象语义块的通用符号为G(其定义域见下文),那么,语句块表示 HNC20 就可以改写成便于计算机操作的 HNC21 形式了。

               J(Em)=[EmG|n]+[Em]                   HNC21

表示式HNC21 中的数字下标m表示句类的级别,n是广义对象语义块的关系标记。在这个表示式中省略了辅语义块,同时应注意到,式中的G也是可以重复的。

    表示式HNC1和 HNC21代表了HNC理论研究到今天为止的全部成果,面壁6年,所得不过就是这两个表示式。概念节点表是从HNC1演化出来的,57组基本句类表示式是从HNC21演化出来的。但在《HNC理论》中不仅没有明确给出这两个表示式,而且还在个别地方,故意搞了一点神秘感甚至误导。这是因为市场时代是“狐狸”为王的时代,迫使老实的“刺猬”们不能不多留一点心眼。

表示式HNC21的细节说明需要较多的文字。这里仅对下标m的约定稍作说明。m的位数代表句类的级别,一位数代表一级句类,两位数代表二级句类,依此类推。各“位”的数字代表相应级别句类的子类类型。例如,一位数的Xmm=1-4)分别代表作用句的4种一级子类:作用的承受、作用的反应、作用的免除和约束,一位数的Tmm=1-4)分别代表转移句的4种一级子类:转移的接收、物转移、信息转移、交换替代与变换;两位数的X20X21X22分别表示一般反应、主动反应和被动反应3种反应句(作用句的二级子类),T2b表示转移句二级子类之一的自身转移句;三位数的T492代表先出交换句;四位数的T4a10代表扩展替代句。这里还应该特别说明,下标m可以为空,代表0级(最高级)句类,共7个,分别命名为基本作用句XJ,基本过程句PJ,基本效应句YJ,基本状态句SJ,基本判断句jDJ,块扩判断句DJ和作用效应句XYJ。上面谈到句类的级别相当于我国的教授级别,那么,这70级句类就很类似于我国1956年内定的4位特级教授了。

对表示式HNC21中的G,在《HNC理论》“论文2”的2.2节作了不遗余力的说明,可惜文字艰涩,令人难以卒读。该节力图阐明两个要点:一是语义块必须作为句类的函数来处理,二是必须引入语义块基元的概念,并试图证明广义对象语义块的基元有而且只有3个:作用者A、对象B和内容C其中内容基元C的引入是关键性的,故不惜笔墨,从各个角度作了近乎繁琐的论证。这3个广义对象语义块基元就是G的定义域

                      GÎ{A,B,C}

字母A来于agentactorB来于objectC来于content。所谓HNC21G的重复,应区分两种情况。在句类的语义块表示式中,是指ABC必须按顺序连接(主要是BCAC连接),不容颠倒,且ABC本身不能重复。但是,在进行语义块构成分析,即进行语义块的对象、内容分解时,三者不仅可以顺序颠倒,而且本身也可以重复。例如,

              <奋战通宵||的张教授>精神||依然很好

这样一句话,属于简明状态句S041J=SB+SC

其中       SC=依然很好

           SB=<奋战通宵||的张教授>精神    

                       SBB       SBC

                 SBBC     SBBB

对于SB来说,如两符号行所示,存在下面等式所表示的对象内容分解

             SB=SBB+SBC=SBBC+SBBB+SBC

简明状态句是汉语最常用的基本句类之一,没有特征语义块,只有两个广义对象语义块。该句类的句类知识约定:SB可包含SBC,但SC不包含SCB。所以,例句两语义块的分界线划在“精神”与“依然”之间,而不是在“张教授”与“精神”之间。在57个基本句类中,语义块之间的分界线需要进一步探讨的,S041J是唯一的句类。所以,这次研讨会上至少有两篇论文涉及到这一句类,希望通过碰撞能有所收益。

本节内容,是理解HNC的关键。以上所说,也许更加难懂,深感没有尽到弥补过失的承诺。现在转到下一个话题,希望有助于难懂度的缓解。

 

    4.2句类表示式及句类知识

表示式HNC21是构成句类表示式的基础,但本身还不是句类表示式。为什么?因为句类表示式必须给出各主语义块排列的顺序,而表示式HNC21并没有规定顺序。基本句类总表所给出的所有表示式都给定了主语义块的顺序,那才是句类表示式。例如上面提到的基本作用句、基本过程句、基本状态句、物转移句、信息转移句、一般反应句、先出交换句、扩展替代句、作用效应句、简明状态句的句类表示式分别是:

      XJ     =  A+X+B

      PJ     =  PB+P

      SJ     =  SB+S

      T2J    =  TA+T2+TB+T2C

      T3J    =  TA+T3+TB+T3C

      X20J   =  X2B+X20+XBC

      T492J  =  TA+T492+T4B2+T4C

      T4a10J  =  T4B1+T4a10+T4B2+T4C

      XYJ    =  A+XY+B+YCYC=(E)+EC

      S041J   =  SB+SC

这些基本句类表示式可统称HNC语句表示式,当然只是HNC语句表示式的一部分,因为还有混合句类和复合句类的表示式。

每一个句类表示式各拥有特定的句类知识,HNC希望把所谓世界知识的精华尽可能纳入到句类知识中,也就是升华到概念层面去表达世界知识。也许可以说,能否实现这一点是能否让计算机理解自然语言的最终“瓶颈”

那么,这个披着神秘“面纱”的句类知识到底包括哪些基本内容呢?拙著中多处有所阐述,这次研讨会上苗传江博士还另有专文,这里仅略举数例。

1:基本作用句XJ的对象语义块B,通常包括3项要素,HNC把他们分别命名为作用对象XB,效应对象YB和效应内容YC,因此,B语义块的一般构成可写成下面的表示式:

        B=XB+YB+YC

这个表示式是基本作用句的句类知识之一,叫做语义块构成知识。对汉语来说,这项知识里还具有一项非常可爱的特性,那就是3项要素的排列顺序一定严格遵守表示式的标示,不容颠倒。在《HNC理论》的p128p339中都曾兴致盎然地谈到这一点,不妨参阅。

2:基本过程句PJPB必须以抽象概念为核心要素,基本状态句SJSB必须以具体概念为核心要素。乔姆斯基先生那有名的、但实际上是带有自嘲意味的句子“无色的绿色思想在狂怒地睡觉”,按句类分析应归于基本状态句,但显然不符合该句类的句类知识,因而其不合理性是很容易判定的。

3:物转移句T2J的转移内容T2C必须以具体概念为核心,而信息转移句T3J的内容T3C必须是抽象概念信息为核心,而且T3C具有块扩特性,即必须扩展为另一语句,否则,只能以指代性短语替换。

4:一般反应句X20J的反应者必须是生命体,首先是人。代表反应引发者及其表现的语义块XBC必须同时包含具体和抽象概念,经常句蜕。如果该语义块仅含有具体或抽象概念,那就意味着省略,而且这一省略必然与某种常识性知识相对应。

5:先出交换句T492J和扩展替代句T4a10J各有3个广义对象语义块,三者之间的关系与其用“双宾语”来描述,不如用“双主语”更贴切,因为两句类的T4C都存在着“易主”现象。

6:作用效应句同信息转移句一样,具有块扩特性,都属于“双谓语”句类。“双谓语”意味着可能需要两个“中心动词”。对于语言中大量存在的句蜕和块扩现象,HNC认为有必要引入下列两组特征语义块“符号对”来加以描述:

      Eg, El       g=globle    l=local 

      Ep, Er       p=premise   r= result

句蜕和块扩现象在印欧语系里由于受到一个中心动词句法规范的影响而比较隐蔽,把这一隐蔽语言现象凸现出来,对于机器翻译和汉语动词兼类现象的处理都大有益处。

7:基本状态句,是无特征语义块的句类之一。西语仅在口语里才偶然使用这种句类,而汉语无论是口语和书面语都大量使用。

以上所述,仅是句类知识的一鳞半爪,更是知识海洋的沧海一粟,但当前的关键不在数量,而在于知识的表示方式是否容易为计算机所掌握或理解。实现知识形式的这一转变,可以说是HNC理论始终追求的唯一目标。“语言概念空间概念基元符号体系”和“语言概念空间语句基元符号体系”的设计都是围绕着这一目标,句类知识的挖掘和积累也是围绕着这一目标。

当然,这里有一系列重大理论问题需要探索,包括:句类知识潜力的评估,句类知识与规则,句类知识的相对性和绝对性,句类知识的客观性和赋予性等。这些本文就不来讨论了。

                                                                               (未完)

2015-05-10 12:18:09 langb2014 阅读数 25657

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

英文名称  Texture Analysis;

学术解释

  指通过一定的图像处理技术提取出纹理特征参数,从而获得纹理的定量或定性描述的处理过程.纹理分析方法按其性质而言,可分为两大类:统计分析方法和结构分析方法

学术定义

  纹理是一种普遍存在的视觉现象,目前对于纹理的精确定义还未形成统一认识,多根据应用需要做出不同定义.

  定义1 按一定规则对元素(elements)或基元(primitives)进行排列所形成的重复模式.

  定义2 如果图像函数的一组局部属性是恒定的,或者是缓变的,或者是近似周期性的,则图象中的对应区域具有恒定的纹理.

作用分析

  对这种表面纹理的研究称为纹理分析.它在计算机视觉领域有着重要的应用.

  在机械工程中对机械零件加工表面的这种凹凸不平性开展研究同样具有重要的实践意义。

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

  纹理分析在遥感图像、 X射线照片、细胞图像判读和处理方面有广泛的应用。关于纹理,还没有一个统一的数学模型。它起源于表征纺织品表面性质的纹理概念,可以用来描述任何物质组成成分的排列情况,例如医学上X 射线照片中的肺纹理、血管纹理、航天(或航空)地形照片中的岩性纹理等。图像处理中的视觉纹理通常理解为某种基本模式(色调基元)的重复排列。因此描述一种纹理包括确定组成纹理的色调基元和确定色调基元间的相互关系。纹理是一种区域特性,因此与区域的大小和形状有关。两种纹理模式之间的边界,可以通过观察纹理度量是否发生显著改变来确定。纹理是物体结构的反映,分析纹理可以得到图像中物体的重要信息,是图像分割特征抽取和分类识别的重要手段。对于空间域图像或变换域图像(见图像变换),可以用

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

  统计纹理分析寻找刻划纹理的数字特征,用这些特征或同时结合其他非纹理特征对图像中的区域(而不是单个像素)进行分类。图像局部区域的自相关函数、灰度共生矩阵、灰度游程以及灰度分布的各种统计量,是常用的数字纹理特征。如灰度共生矩阵用灰度的空间分布表征纹理。由于粗纹理的灰度分布随距离的变化比细纹理缓慢得多,因此二者有完全不同的灰度共生矩阵。

  结构纹理分析研究组成纹理的基元和它们的排列规则。基元可以是一个像素的灰度、也可以是具有特定性质的连通的像素集合。基元的排列规则常用树文法来描述。

纹理基元与影调

  一个纹理基元(不严格地说)是一个具有一定的不变特性的视觉基元。这些不变特性在给定区域内的不同位置上,以不同的变形和不同的方向重复出现。纹理基元最基本的不变特性之一是区域内象素的灰度分布,而影调也是表示灰度的明暗分布。

  因此,我们认为影调和纹理不是独立的概念:当在图象的一定面积区域中影调基元的变化很小时,这个区域的主导特性是影调。当在小面积区域中含大量不同的影调,这个区域占主导的特性是纹理。

 

spatial gray level co-occurrence matrix 空间灰度共生矩阵(GLCM)
spatial gray level dependence matrix 空间灰度相关矩阵
spatial gray-level dependence matrices  空间灰度独立矩阵

Texture

纹理特征建立在子对象基础之上,这就意味着,必须有一个对象等级架构去使用他们,精确的分割是使用形状纹理特征的基础,子对象的分割要尽量有意义
1.考虑子对象光谱特征的纹理
2.考虑子对象形状特征的纹理
3.基于灰度共生矩阵的纹理

1.Layer Value Texture Based on Subobjects

—【Mean of sub-objects: stddev】子对象均值标准差,对象分割的子对象更隔阂,则该特征更有意义;

—【Avrg. mean diff. to neighbors of subobjects】通过一个对象内部子对象在某一个图层(k)上与邻域(d)对象的差异取平均来进行对比,反应该对象内部差异的平均值。

2.Shape Texture Based on Subobjects

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

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

—【Density of subobjects: mean 】子对象密度平均值(参考对象形状特征中的Density );

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

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

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

—【Direction of subobjects: mean 】方向权重是相关子对象的的不对称性,越不对称,对主方向的影响越大,算法首先比较所有子对象主方向在90-180之间的做(direction-180),即顺是真旋转180度,然后计算等级距离d下的所有子对象的主方向(权重)均值;

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

3.Texture After Haralick P.152

    灰度共生矩阵(http://blog.csdn.net/Redeom/archive/2008/04/17/2301823.aspx

     共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。
    一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。
    设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,θ)。

     共生矩阵的一个计算例子见下图,其中(a)为原始图像的灰度值,(b)为从左到右方向上的共生矩阵,θ=0,(c)为从左下到右上方向上的共生矩阵,θ=45,(d)为从下到上方向共生矩阵,θ=90,(e)为从右下到左上方向上的共生矩阵,θ=135,相邻间隔d=1。


     纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的,因为图像中相距(Δ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>

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

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),其中位于(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]。

Matlab实现:

% 图像检索——纹理特征
%基于共生矩阵纹理特征提取,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 P(m,n,1) = P(m,n,1)+1;
P(n,m,1) = P(m,n,1);
end
if i>1&j P(m,n,2) = P(m,n,2)+1;
P(n,m,2) = P(m,n,2);
end
if i P(m,n,3) = P(m,n,3)+1;
P(n,m,3) = P(m,n,3);
end
if i 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));

在计算灰度共生矩阵前,需要做影像的量化比如将256级影像量化为128级。有一种方法是线性量化,但是这种方法有可能对原始影像的纹理产生人为地影响,太“粗了”。所以想请教大家是否还有其他较好的影像灰度级量化的方法?

http://blog.csdn.net/linxue968/article/details/6034745

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

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))
反映了纹理的清晰程度和规则程度,纹理清晰、规律性较强、易于描述的,值较大;杂乱无章的,难于描述的,值较小

灰度共生矩阵就是一种通过研究灰度的空间相关特性来描述纹理的常用方法。

灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。

取图像(N×N)中任意一点(x,y)及偏离它的另一点(x+a,y+b),设该点对的灰度值为(g1,g2)。令点(x,y)在整个画面上移动,则会得到各种(g1,g2)。值,设灰度值的级数为,则(g1,g2)。的组合共有 k2种。对于整个画面,统计出每一种(g1,g2)值出现的次数,然后排列成一个方阵,在用(g1,g2)出现的总次数将它们归一化为出现的概率P(g1,g2),这样的方阵称为灰度共生矩阵。距离差分值(a,b)取不同的数值组合,可以得到不同情况下的联合概率矩阵。(a,b)取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取(1,0)、(1,1)、(2,0)等小的差分值。

 

  为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种:

  (1)能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反,如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均一和规则变化的纹理模式。

  (2)对比度:反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。

  (3)相关:它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。

  (4)熵:是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。

  (5)逆差距:反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。

       其它参数:中值<Mean>、协方差<Variance>、同质性/逆差距<Homogeneity>、反差<Contrast>、差异性<Dissimilarity>、熵<Entropy>、二阶距< Angular Second Moment>、自相关<Correlation>

image=imread('4.bmp');
        %计算图像的灰度共生矩阵
[glcms,SI]=graycomatrix(image);
        %计算图像的灰度共生矩阵
stats = graycoprops(glcms,'Contrast Correlation energy')
%灰度共生矩阵纹理特征提取
%提取了三个特征参数。f1为角二阶矩,f2为相关度,f3为熵
clc
clear
tu=imread('nvxing19.jpg');
IN=rgb2gray(tu);              %灰度化
g=256;
[R,C]=size(IN);
p1=zeros(g);             %计算共生矩阵
for M=1:R
    for N=1:(C-1)
        p1(IN(M,N)+1,IN(M,N+1)+1)= p1(IN(M,N)+1,IN(M,N+1)+1)+1;
        p1(IN(M,N+1)+1,IN(M,N)+1)= p1(IN(M,N+1)+1,IN(M,N)+1)+1;
    end
end
p2=double(p1)/(M*N);             %归一化

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

% 计算相关度 f2
colour=0:(g-1);
m1=sum(p2)*colour(:);
m2=m1;
pp=sum(p2);
v1=((colour-m1).^2)*pp(:);
 v2=v1;
[m,n]=meshgrid(colour,colour);
pp=m.*n.*p2;
f2=(sum(pp(:))-m1*m2)/(v1+eps)*(v2+eps)

%计算墒 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+2*p2(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.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维纹理特征
%--------------------------------------------------------------------------
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方向上的能量依次为: %f, %f, %f, %f',E(1),E(2),E(3),E(4))  % 输出数据;
sprintf('0,45,90,135方向上的熵依次为: %f, %f, %f, %f',H(1),H(2),H(3),H(4))  % 输出数据;
sprintf('0,45,90,135方向上的惯性矩依次为: %f, %f, %f, %f',I(1),I(2),I(3),I(4))  % 输出数据;
sprintf('0,45,90,135方向上的相关性依次为: %f, %f, %f, %f',C(1),C(2),C(3),C(4))  % 输出数据;

灰度共生矩阵只是描述纹理的一种方法,其本身是不能作为特征的.
特别是灰度等级大的时候.
但是灰度共生矩阵的能量\相关等二次特征可以表征图像的一些特性.
问题一:接下来然后怎么办?
  接下来转化为其它的特征作为输入.
问题二:一副图像的纹理特征提取出来的矩阵和原来矩阵的维数是相同的还是不同的?
  一般不是相同的,一般要小,特征嘛,要不然不需要降维,直接让原图像作为原始特征.

一般是需要降维的,matlab中灰度共生矩阵函数中有降维的操作吗,还是需要自己写进去这些代码才会有降维发生?
非你有降维的操作,不然肯定是相同的!你若是理解了共生矩阵怎么得来的也就完全明白了~~

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))
反映了纹理的清晰程度和规则程度,纹理清晰、规律性较强、易于描述的,值较大;杂乱无章的,难于描述的,值较小。

http://blog.csdn.net/weiyuweizhi/article/details/5724050

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

灰度-梯度共生矩阵纹理特征分析既可用灰度本身的信息,又可用灰度变化的梯度信息。灰度-梯度共生矩阵纹理分析方法是用灰度和梯度的综合信息提取纹理特征,它考虑像素灰度与边缘梯度的联合统计分布。利用灰度-梯度共生矩阵我们计算了小梯度优势、大梯度优势、灰度分布不均匀性、梯度分布不均匀性、能量、灰度平均、梯度平均、灰度方差、梯度方差、相关、梯度熵,灰度熵、混合熵、惯性、以及逆矩差等十五个纹理特征量参数说明: GrayNumLevels 灰度级参数 GradsNumLevels 梯度级参数 Method='sobel' 梯度算子提取特征如下: SmallGradsDominance 小梯度优势 BigGradsDominance 大梯度优势 GrayAsymmetry 灰度分布不均匀性 GradsAsymmetry 梯度分布不均匀性 Energy 能量 GrayMean 灰度平均 GradsMean 梯度平均 GrayVariance 灰度方差 GradsVariance 梯度方差 Correlation 相关 GrayEntropy 灰度熵 GradsEntropy 梯度熵 Entropy 混合熵 Inertia 惯性 DifferMo

 

灰度共生矩阵法,顾名思义,就是通过计算灰度图像得到它的共生矩阵,然后透过计算这个共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。

对于灰度共生矩阵的理解,需要明确几个概念:方向,偏移量和灰度共生矩阵的阶数。

1、 方向

一般计算过程会分别选在几个不同的方向来进行,常规的是0°、45°、90°、135°,理论上的所有方向计算方法不可取。

定义如下:

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

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

3、灰度共生矩阵的阶数和灰度图像的灰度值的阶数是一致的,即当灰度图像的灰度值的阶数是N时,灰度共生矩阵为N*N的矩阵。

 

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度的计算式

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

这时候得到四个共生矩阵,其编程实现,可参见如下代码:

%2.为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级

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

fori = 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);

form = 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

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

%对共生矩阵归一化

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

forn = 1:4

    P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n)));

end

http://archive.cnblogs.com/a/2115266/

GLCM灰度共生矩阵

阅读数 1011

没有更多推荐了,返回首页