文档库 最新最全的文档下载
当前位置:文档库 › Glcm MATLAB编程实现灰度共生矩阵检测织物疵点

Glcm MATLAB编程实现灰度共生矩阵检测织物疵点

Glcm  MATLAB编程实现灰度共生矩阵检测织物疵点
Glcm  MATLAB编程实现灰度共生矩阵检测织物疵点

clear all

clc

close all

Img1=imread('C1R1EAID.TIF');

Img=Img1(1:512,1:512);

%图像分成mxn块

m1=16;

n1=16;

[sample_h sample_w]=size(Img);%读入图像的高和宽512 512 sample_h

sample_w

region_h=floor(sample_h/m1);%每个区域的高32

region_w=floor(sample_w/n1);%每个区域的宽32

plot_num=1;

figure

imshow(Img)

title('原图像')

Img2 = zeros(512,512);

for i2 = 1:sample_h

for j2 = 1:sample_w

for n = 1:256/16

if (n-1)*16<=Img(i2,j2)&Img(i2,j2)<=(n-1)*16+15

Img2(i2,j2) = n-1;

end

end

end

end

figure

for i=1:m1

for j=1:n1

temp=Img2((i-1)*region_h+1:i*region_h,(j-1)*region_w+1:j*region_w);%每个区域的信息

subplot(16,16,plot_num);

imshow(uint8(temp))

P = zeros(16,16);

for m2 = 1:16

for n2 = 1:16

for i1 = 1:32

for j1 = 1:32

if j1<32&temp(i1,j1)==m2-1&temp(i1,j1+1)==n2-1

P(m2,n2) = P(m2,n2)+1;

P(n2,m2) = P(m2,n2);

end

end

end

if m2==n2

P(m2,n2) = P(m2,n2)*2;

end

end

end

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

E(plot_num) = sum(sum(P(:,:).^2));

E(plot_num)

if E(plot_num)<0.3000

Img((i-1)*region_h+1,(j-1)*region_w+1:j*region_w)=255;

Img(i*region_h,(j-1)*region_w+1:j*region_w)=255;

Img((i-1)*region_h+1:i*region_h,(j-1)*region_w+1)=255;

Img((i-1)*region_h+1:i*region_h,j*region_w)=255;

end

plot_num=plot_num+1;

end

end

figure

imshow(Img)

灰度共生矩阵算法

图像理解与分析中灰度共生矩阵算法1 作者:冰封蓝羽 2006-04-11 16:49:54 标签: 图像理解与分析中 灰度共生矩阵算法 周一早上图像理解与分析课上,朱启疆老师讲了灰度共生矩阵算法,回去后我编程实现了这个算法。 内容如下: 共有matrix.cpp d_matrix.h d_exept.h mat.txt四个文件 //matrix.cpp /* Visual C++ 6.0 matrix designed by bfly */ #include #include #include #include #include #include "d_matrix.h" template void outputmat(const matrix& mat); template int classifymat(const matrix& mat); template void transformmat(const matrix& formermat, matrix& lattermat); template void probablitymat(const matrix& mat,matrix& probmat);

template void typicalarguement(const matrix& mat,const matrix& probmat); using namespace std; int main() { //input matrix matrix initMat; int numRows, numCols; int i, j; ifstream fin("mat.txt"); if(!fin) { cerr << "Cannot open 'mat.txt'" << endl; exit(1); } fin >> numRows >> numCols; initMat.resize(numRows, numCols); for(i = 0; i < numRows; i++) { for(j = 0; j < numCols; j++) { fin >> initMat[i][j]; } } //transform matrix to tempMat int counter=classifymat(initMat); matrix tempMat; tempMat.resize(counter, counter); transformmat(initMat, tempMat); outputmat(tempMat); //transform matrix to probMat matrix probMat; probMat.resize(counter, counter); probablitymat(tempMat, probMat); outputmat(probMat); cout << endl; //output the typicalarguements typicalarguement(tempMat, probMat);

图像的灰度共生矩阵

圖像的灰度共生矩陣 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的像素水平相鄰。

灰度共生矩阵

灰度共生矩阵(GLCM) 共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。 一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。 设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,。) 纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的,因为图像中相距(ΔχΔy的两个灰度像素同时出现的联合频率分布可以用灰度共生矩阵来表示。若将图像的灰度级定为N级,那么共生矩阵为NXN矩阵,可表示为M(?X' Δy)(h,k),其中位于(h,k)的元素mhk的值表示一个灰度为h而另一个灰度为k的两个相距为(ΔχΔy的像素对出现的次数。 对粗纹理的区域,其灰度共生矩阵的mhk值较集中于主对角线附近。因为对于粗纹理,像素对趋于具有相同的灰度。而对于细纹理的区域,其灰度共生矩阵中的mhk值则散布在各处。 为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种: (1)能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反,

灰度共生矩阵VC++实现

////////////////////////////////////////////////////////////////////// // GrayShow.cpp: implementation of the CGrayShow class. // 灰灰灰灰灰灰灰灰灰灰 // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "GrayShow.h" #include "math.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CGrayShow::CGrayShow() { PMatrixRD = NULL; //45灰度度度度灰灰灰灰灰灰 PMatrixLD = NULL; //135灰度度度度灰灰灰灰灰灰 PMatrixV = NULL; //90灰度度度度灰灰灰灰灰灰 PMatrixH = NULL; //0灰度度度度灰灰灰灰灰灰 // ImageArray = NULL; //原原度原原原原原原 //m_tOriPixelArray = NULL;//原原原原原原 //m_tResPixelArray = NULL;//参参原原原原 // m_dib = new CDib(); distance = 5; FilterWindowWidth = 16; GrayLayerNum = 16; //初原初初初8个灰灰个,可可可可 //这这灰灰灰灰这初GrayLayerNum×GrayLayerNum PMatrixH = new int[GrayLayerNum*GrayLayerNum]; PMatrixLD= new int[GrayLayerNum*GrayLayerNum]; PMatrixRD= new int[GrayLayerNum*GrayLayerNum]; PMatrixV = new int[GrayLayerNum*GrayLayerNum]; // for(i=0; i

灰度共生矩阵

灰度共生矩阵 概念: 像素灰度在空间位置上的反复出现形成图像的纹理,GLCM是描述具有某种空间位置关系两个像素灰度的联合分布 含义: 就是两个像素灰度的联合直方图,是一种二阶统计量 就是两个像素点的关系。像素关系可以根据不同的纹理特性进行选择,也就是的大小可以自由选 像素的空间位置关系: 取。对于较细的纹理分析可以取像素间距为1,是水平扫描;是垂直扫描;是45度扫描;是 135度扫描(原博文有错误)。一旦位置空间确定,就可以生成灰度共生矩阵。 矩阵的物理意义: 用表示灰度共生矩阵,它是一个的矩阵(L为灰度级,就是一幅图中包含的不同灰度或者颜色的个数),是具有空间位置关系且灰度分别为i 和j的两个像素出现的次数或频率(归一化) 例如:下图是某纹理像素的放大,和对应的像素灰度矩阵 此图像只有三种灰度,故灰度级为3,灰度共生矩阵是一个3*3的矩阵

归一化形式为 改变位置空间的定义,灰度共生矩阵相应地改变: 归一化形式为: 矩阵的特征量: 从灰度共生矩阵上可以简单的看出,如果对角附近的元素有较大的值,说明图像的像素具有相似的像素值,如果偏离对角线的元素会有比较大的值,说明像素灰度在局部有较大变化。为了得到更多的纹理特征,我们还需要在进行计算: 对比度)(或反差)(contrast): 纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,con越大。所以con越大图像越清晰 相关度(inverse different moment): 度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。

灰度共生矩阵

1 引言 图像识别是随计算机的发展而兴起的一门学科,现已渗透各个领域。如生物学中的色体特性研究;天文学中的望远镜图像分析;医学中的心电图分析、脑电图分析、医学图像分析;军事领域中的航空摄像分析、雷达和声纳信号检测和分类、自动目标识别等等。 当前,对图像分类识别的常用方法是先提取图像特征,再进行特征值的归类。图像特征包括几何特征、形状特征、颜色特征、纹理特征等等。本文主要针对图像的纹理特征进行提取、分析,最后实现具有显著纹理特性的图像的分类识别。 2 图像的纹理特征 纹理是景物的一个重要特征。通常认为纹理是在图像上表现为灰度或颜色分布的某种规律性,这种规律性在不同类别的纹理中有其不同特点。纹理大致可分为两类:一类是规则纹理,它由明确的纹理基本元素(简称纹理基元)经有规则排列而成,常被称为人工纹理。另一类是准规则纹理,它们的纹理基元没有明确的形状,而是某种灰度或颜色的分布。这种分布在空间位置上的反复出现形成纹理,这样的重复在局部范围内往往难以体察出来,只有从整体上才能显露。这类纹理存在着局部不规则和整体规律性的特点,常被称为自然纹理。 纹理特征可用来描述对象物表面的粗糙程度和它的方向性,也可用来分析生物材料组织,或者用来进行图像分割。纹理特征提取的方法随纹理类别的不同而不同,一般,规则纹理采用结构分析方法,准规则纹理采用统计分析方法。 3 灰度共生矩阵 由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两象素之间会存在一定的灰度关系,即图像中灰度的空间相关特性。灰度共生矩阵就是一种通过研究灰度的空间相关特性来描述纹理的常用方法。 3.1 灰度共生矩阵生成 灰度直方图是对图像上单个象素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。 取图像(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)等小的差分值。 当a=1,b=0时,像素对是水平的,即0度扫描;当a=1,b=0 时,像素对是垂直的,即90度扫描;当a=1,b=1时,像素对是右对角线的,即45度扫描;当a=-1,b=-1时,像素对是左对角线,即135度扫描。 这样,两个象素灰度级同时发生的概率,就将(x,y)的空间坐标转化为“灰度对” (g1,g2)的描述,形成了灰度共生矩阵。 实验中对灰度共生矩阵进行了如下的归一化:

灰度-梯度共生矩阵数字特征的研究

灰度-梯度共生矩阵数字特征的研究 0引言 灰度共生矩阵概念最早由Haralick 于1973年提出,在1992年Ohanian P . P .通过实验证明了基于灰度共生矩阵的统计特征的有效性。洪继光于1984年在灰度共生矩阵的基础上提出了灰度-梯度共生矩阵[1],并应用该模型上的15个特征对五类白血球样本进行了分类识别,其实验结果表明,对于像细胞核边界不清晰的图像,该方法较灰度共生矩阵的分类结果好。灰度-梯度共生矩阵模型集中反映了图像中两种最基本的信息,即像素的灰度和梯度(或边缘)的相互关系。各像素的灰度是构成一幅图像的基础,而梯度则是构成图像边缘轮廓的要素。灰度-梯度空间可以很清晰地表现图像内像素灰度与梯度的分布规律,同时也体现了各像素与其邻域像素的空间关系,对图像的纹理能很好地描绘。 1灰度-梯度共生矩阵模型 灰度-梯度共生矩阵纹理分析方法是利用图像的灰度和梯度的综合信息提取纹理特征[2]。灰度-梯度共生矩阵的元素),(y x H 定义为在归一的灰度图像),(j i F 及其归一的梯度图像),(j i G 中具有灰度值x 和梯度值y 的像素数,即在集合 {} 1,,1,0,,),(),(|),(-===N j i y j i G x j i F j i 中元素的个数。其中, ]1,0[),(],1,0[),(-∈-∈g L j i G L j i F 。 对灰度-梯度共生矩阵进行归一化处理,使其各元素之和为1。如式(1)所示: ∑∑-=-=∧ = 101 ) ,() ,(),(L x L y g y x H y x H y x H (1) 而2101 ),(N N N y x H L x L y g =?=∑∑-=-=,所以上式可以表示为式(3-2): 2 ) ,(),(N y x H y x H = ∧ (2) 该灰度-梯度共生矩阵的原点在左上角,向右梯度值增加,向下灰度值增加。

图像的灰度共生矩阵

图像的灰度共生矩阵收藏 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,...) 返回一个或多个灰度灰度共生矩阵,根据

灰度共生矩阵

灰度直方图是对图像上单个象素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。 取图像(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) 灰度共生矩阵法,顾名思义,就是通过计算灰度图像得到它的共生矩阵,然后透过计算这个共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。 对于灰度共生矩阵的理解,需要明确几个概念:方向,偏移量和灰度共生矩阵的阶数。 1、方向 一般计算过程会分别选在几个不同的方向来进行,常规的是0°、45°、90°、135°,理论上的所有方向计算方法不可取。 定义如下:

灰度共生矩阵

灰度共生矩阵(GLCM) 共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。 一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。 设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,θ)。 纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的,因为图像中相距(Δx,Δy)的两个灰度像素同时出现的联合频率分布可以用灰度共生矩阵来表示。若将图像的灰度级定为N级,那么共生矩阵为N×N矩阵,可表示为M(Δx,Δy)(h,k),其中位于(h,k)的元素mhk的值表示一个灰度为h而另一个灰度为k的两个相距为(Δx,Δy)的像素对出现的次数。 对粗纹理的区域,其灰度共生矩阵的mhk值较集中于主对角线附近。因为对于粗纹理,像素对趋于具有相同的灰度。而对于细纹理的区域,其灰度共生矩阵中的mhk值则散布在各处。 为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种: (1)能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;

c++灰度共生矩阵

void CFeatureExtraction::TextureSpectrum256(CVisImage &vimg, float *fptrHistogram,TEXTURE_METHOD method, bool bNormalize) { memset(fptrHistogram,0,256*sizeof(float));//清零 int i,j,k; //int x,y,m,n; unsigned char V[9],tmp; unsigned char E[8]; unsigned char NTU; unsigned char *graydata; CVisImage grayimage;//textureimage; grayimage.CopyOf(vimg,0);//to gray int widthbytes,height,widthpixels; widthbytes=grayimage.GetWidthByBytes(); widthpixels=grayimage.Width(); height=grayimage.Height(); graydata=(unsigned char*)grayimage.GetImageData(); //textureimage.CloneImage(grayimage); //texturedata=(unsigned char*)textureimage.GetImageData(); int iwidth,i1width,i_1width; for(i=1;i

Matlab灰度共生矩阵计算

一个简单的灰度共生矩阵计算实例本科的时候学过杨磊库老师讲授的武大贾永红编的《数字图像处理》课,当时讲过灰度共生矩阵,只是当时没好好听讲,考试的时候学会了,现在又忘了。查了下贾永红的《数字图像处理》,没看懂,之后又翻出了韦玉春、汤国安、杨昕等人编的《遥感数字图像处理教程》,还好在P54-55中找到了解释:在图像中任意去一点(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表明,图像中存在明显的左上右下方向的纹理。

灰度共生矩阵

灰度共生矩阵 一.概念及流程 纹理特征在地物光谱特征比较相似的时候常作为一种特征用于图像的分类和信息提取,是由灰度分布在空间位置上反复出现而形成的,因而图像空间中相隔某距离的两个像素之间存在一定的灰度关系,即图像中灰度的空间相关特性。灰度共生矩阵是一种通过研究灰度的空间相关特性来描述纹理的常用方法。 具体描述如下: 1)灰度降级,对原始影像进行灰度降级如8,16,32,64等; 纹理计算的灰度降级策略来源于IDL的bytscl函数介绍,具体描述如下: 图2 灰度降级 2)根据设定好的窗口大小,逐窗口计算灰度共生矩阵; 3)根据选择的二阶统计量,计算纹理值。

二.纹理算子 协同性(GLCM_HOM):对应ENVI的Homogeneity 反差性(GLCM_CON): 非相似性(GLCM_DIS): 均值GLCM_MEAN:对应ENVI的Mean

方差GLCM_VAR:对应ENVI的Variance 角二阶矩GLCM_ASM:对应ENVI的Second Moment 相关性GLCM_COR:对应ENVI的Correlation GLDV角二阶矩GLDV_ASM: 熵GLCM_ENTROPY:对应ENVI的Entropy

归一化灰度矢量均值GLDV_MEAN:对应ENVI的Dissimilarity 归一化角二阶矩GLDV_CON:对应ENVI的Contrast 三.实验报告 1:打开ENVI4.5,File->Open Image File,打开实验图像 2:Basic Tools->Resize Data(Spatial/Spectral),打开Resize Data I nput File对话框 3:选择目标图像,在Spectral Subset中选择第三波段(考虑到第3波段地貌区分比较明显),在Spaial Subset中设置图像剪裁大小,进行剪裁。分别剪裁出50*50的城区图像一幅与50*50的农区图像一幅,保存至文件。

matlab中的灰度共生矩阵相关函数用法

matlab中的灰度共生矩阵相关函数用法(graycomatrix,graycoprops) matlab中的灰度共生矩阵相关函数用法(graycomatrix,graycoprops)graycomatrix:由图像创建灰度共生矩阵 1.glcm = graycomatrix(I) 从图像I创建灰度共生矩阵glcm。通过计算具有灰度级i和灰度级j的像素对在水平方向相邻出现的频繁程度。glcm中的每个元素说明了水平方向相邻像素对出现的次数。如果灰度级为L则glcm的维数为L*L。 2.glcms = graycomatrix(I,param1,val1,param2,val2,...) 根据参数对的设定,返回一个或多个灰度共生矩阵。 参数说明: 'GrayLimits':灰度界限,为二元向量[low high]。灰度值小于等于low 时对应1,大于等于high时对应于灰度级。如果参数设为[],则共生矩阵使用图像的最小和最大灰度值作为界限,即[min(I(:)) max(I(:))]。 'NumLevels':整数,说明I中进行灰度缩放的灰度级数目。例如,如果NumLevel 设为8,则共生矩阵缩放I中的灰度值使它们为1到8之间的整数。灰度级的数目决定了共生矩阵glcm的尺寸。缺省情况:数字图像:8;二进制图像:2。 'Offset':p行2列整型矩阵,说明感兴趣像素与其相邻像素之间的距离。每行是一个说明像素对之间偏移关系的二元向量[row_offset, col_offset]。行偏移row_offset是感兴趣像素和其相邻像素之间的间隔行数。列偏移同理。偏移常表达为一个角度,常用的角度如下:(其中D为像素距离)角 度 0 45 90 135 Offset [0,D] [-D D] [-D 0] [-D -D] 3.[glcms,SI] = graycomatrix(...) 返回缩放图像SI,SI是用来计算灰度共生矩阵的。SI中的元素值介于1和灰度级数目之间。 graycoprops:得到灰度共生矩阵得到各种属性 stats = graycoprops(glcm, properties):从灰度共生矩阵glcm计算静态属性。glcm是m*n*p的有效灰度共生矩阵。如果glcm是一个灰度共生矩阵的矩阵,则stats是包括每个灰度共生矩阵静态属性的矩阵。 graycoprops正规化了灰度共生矩阵,因此元素之和为1。正规化的GLCM中的元素(r,c)是具有灰度级r和c的定义的空间关系的像素对的联合概率。Graycoprops使用正规化的GLCM来计算属性。 属性参数如下: 1. 'Contrast' : 对比度。返回整幅图像中像素和它相邻像素之间的亮度反差。取值范围:[0,(GLCM行数-1)^2]。灰度一致的图像,对比度为0。 2. 'Correlation' : 相关。返回整幅图像中像素与其相邻像素是如何相关的度量值。取值范围:[-1,1]。灰度一致的图像,相关性为NaN。 3. 'Energy' : 能量。返回GLCM中元素的平方和。取值范围:[0 1]。灰度一致的图像能量为1。

遥感图像处理实验报告_灰度共生矩阵

遥感图像处理 实验报告(2013 —2014 学年第1学期)实验名称: 实验时间: 实验地点: 指导教师: 专业班级: 姓名: 学号:

一:实验目的 通过实验,理解并掌握灰度共生矩阵的概念,理解灰度共生矩阵对于纹理描述的意义,理解从纹理图像至特征值的抽象过程,理解计算机自动识别地貌的基本原理。 二:实验内容 灰度共生矩阵纹理描述在不同类型遥感图像中的有效性分析 三:实验平台 Windows XP Professional SP3 ENVI4.5 四:实验步骤 这次实验,选用Landsat5咸阳地区的图像作为实验对象 1:打开ENVI4.5,File->Open Image File,打开实验图像 2:Basic Tools->Resize Data(Spatial/Spectral),打开Resize Data Input File对话框 3:选择目标图像,在Spectral Subset中选择第三波段(考虑到第波段地貌区分比较明显),在Spaial Subset中设置图像剪裁大小,进行剪裁。分别剪裁出50*50的城区图像一幅与50*50的农区图像一幅,保存至文件。 4:Filter(滤波器)->Texture(纹理)->Co-occurrence Measures(二阶概率统计),打开Texture Input File对话框 5:选择剪裁出的城区/农区图像,点击OK,弹出Co-occurrence Texture Parameters对话框 6:在Processing Window中设置滤波器窗口大小,在Co-occurrence Shift中设置对应窗口大小的灰度共生矩阵的距离差分值,Output Result to选择Memory 7:在工具栏选择Basic Tools->Statistics->Compute Statistics,弹出Compute Statistics Input File对话框 8:选择第6步输出的Memory,点击OK,再点击一次OK,弹出统计结果 9:对比两个纹理图像,在不同滤波窗口大小下不同距离差分下的统计结果,将各个统计结果中的统计均值Mean记录在表格上,做出图表,进行讨论。 7*7窗口大小下,差分距离为2,9*9窗口大小下,差分距离为3,11*11窗口大小下,差分距离为4 五:实验成果 通过对下列附表的分析,可以观察得出以下几个结论: 1:在八个特征值上,农区最终抽象出的值,普遍比城区要小30%-60%左右,也就是说,在本例中,抛开滤波窗口大小与差分距离及方向不管,仅凭特征值的大小,就可以明显区分城区与农区两种地貌纹理 2:同一特征值计算方法、同一纹理、同一差分方向,不同滤波窗口上的特征值有一定规律,普遍表现为7*7窗口最大,9*9次之,11*11最小,但也有个别例外情况。 3:同一特征值计算方法、同一纹理、同一滤波窗口大小及差分距离,不同差分方向上,表现出的特征值基本相近,有少许差异,说明在本例的两种纹理:城区与农区,在各个方向上灰度变化的统计概率是相近的,方向性纹理并不明显。 4:同一特征值计算方法、同一差分距离及差分方向上,不同纹理在三个窗口下的特征值,尽管大小有差异,但大小比值是相近的,表现在图表上的形式就是,城区和农区在同一方向的两张图表,形状是相近的,说明城区和农区两种纹理在本例中,大的差异主要体现在灰度值的大小上,而不是灰度值的统计规律上

基于灰度共生矩阵的纹理特征值提取

龙源期刊网 https://www.wendangku.net/doc/aa7237667.html, 基于灰度共生矩阵的纹理特征值提取 作者:黄丽华 来源:《科技视界》2013年第22期 【摘要】图像分类识别的常用方法是先提取图像特征,再进行特征值的归类。图像特征 包括几何特征、形状特征、颜色特征、纹理特征等等。本系统主要针对图像的纹理特征进行提取、分析,通过研究灰度的空间相关特性来描述纹理,利用灰度共生矩阵产生的四个纹理特征值使其能有效的描述相应图片的纹理特征,最后实现具有显著纹理特性的图像的分类识别。 【关键词】图像特征;灰度共生矩阵;分类识别 1 系统功能及工作原理 1.1 系统功能简介 系统使用基于统计法的灰度共生矩阵,进而提取二次统计特征量来作为区分各图像的标志,已达到对图像对象的识别。通过CCS3.3 图像处理软件进行模拟仿真,检验相应功能是否实现。 1.2 工作原理 1.2.1 灰度共生矩阵生成 1.2.2 矩阵分析 1)主对角线元素的作用 灰度共生矩阵中主对角线上的元素是一定位置关系下的两象素同灰度组合出现的次数。由于沿着纹理方向上相近元素的灰度基本相同,垂直纹理方向上相近象素间有较大灰度差的一般规律,因此,这些主对角线元素的大小有助于判别纹理的方向和粗细,对纹理分析起着重要的作用。 2)元素值的离散性 灰度共生矩阵中元素值相对于主对角线的分布可用离散性来表示,它常常反映纹理的粗细程度。离开主对角线远的元素的归一化值高,即元素的离散性大,也就是说,一定位置关系的两象素间灰度差的比例高。若以|△x|=1或0,|△y|=1或0的位置关系为例,离散性大意味着相邻象素间灰度差大的比例高,说明图像上垂直于该方向的纹理较细;相反,则图像上垂直于该方向上的纹理较粗。当非主对角线上的元素的归一化值全为0时,元素值的离散性最小,即图像上垂直于该方向上不可能出现纹理。

matlab中的灰度共生矩阵相关函数用法详解

matlab中的灰度共生矩阵相关函数用法详解(graycomatrix,graycoprops) matlab中的灰度共生矩阵相关函数用法(graycomatrix,graycoprops)graycomatrix:由图像创建灰度共生矩阵 1.glcm = graycomatrix(I) 从图像I创建灰度共生矩阵glcm。通过计算具有灰度级i和灰度级j 的像素对在水平方向相邻出现的频繁程度。glcm中的每个元素说明了水平方向相邻像素对出现的次数。如果灰度级为L则glcm的维数为L*L。 2.glcms = graycomatrix(I,param1,val1,param2,val2,...) 根据参数对的设定,返回一个或多个灰度共生矩阵。 参数说明: 'GrayLimits':灰度界限,为二元向量[low high]。灰度值小于等于low 时对应1,大于等于high时对应于灰度级。如果参数设为[],则共生矩阵使用图像的最小和最大灰度值作为界限,即[min(I(:)) max(I(:))]。 'NumLevels':整数,说明I中进行灰度缩放的灰度级数目。例如,如果NumLevel设为8,则共生矩阵缩放I中的灰度值使它们为1到8之间的整数。灰度级的数目决定了共生矩阵glcm的尺寸。缺省情况:数字图像:8;二进制图像:2。 'Offset':p行2列整型矩阵,说明感兴趣像素与其相邻像素之间的距离。每行是一个说明像素对之间偏移关系的二元向量[row_offset, col_offset]。行偏移row_offset是感兴趣像素和其相邻像素之间的间隔行数。列偏移同理。偏移常表达为一个角度,常用的角度如下:(其中D为像素距离)角度 0 45 90 135 Offset [0,D] [-D D] [-D 0] [-D -D] 3.[glcms,SI] = graycomatrix(...) 返回缩放图像SI,SI是用来计算灰度共生矩阵的。SI中的元素值介于1和灰度级数目之间。 graycoprops:得到灰度共生矩阵得到各种属性 stats = graycoprops(glcm, properties):从灰度共生矩阵glcm计算静态属性。glcm是m*n*p的有效灰度共生矩阵。如果glcm是一个灰度共生矩阵的矩阵,则stats是包括每个灰度共生矩阵静态属性的矩阵。 graycoprops正规化了灰度共生矩阵,因此元素之和为1。正规化的GLCM 中的元素(r,c)是具有灰度级r和c的定义的空间关系的像素对的联合概率。Graycoprops使用正规化的GLCM来计算属性。 属性参数如下: 1. 'Contrast' : 对比度。返回整幅图像中像素和它相邻像素之间的亮度反差。取值范围:[0,(GLCM行数-1)^2]。灰度一致的图像,对比度为0。 2. 'Correlation' : 相关。返回整幅图像中像素与其相邻像素是如何相关的度量值。取值范围:[-1,1]。灰度一致的图像,相关性为NaN。 3. 'Energy' : 能量。返回GLCM中元素的平方和。取值范围:[0 1]。灰度一致的图像能量为1。

相关文档