纹理特征描述图像或图像区域所对应景物的表面性质,是图像中计算出来的一个值,它对区域变化的特征进行量化。纹理分析是通过一定的图像处理技术抽取纹理特征,从而获得纹理的定量或定性描述的处理过程。

灰度差分统计法

纹理区域的灰度直方图作为纹理特征,利用图像直方图提取诸均值、方差、能量及熵等特征来描述纹理。设(x,y)为图像中的一点,该点和它只有微小距离的点(x+▲x,y+▲y)的灰度差值为:g(x,y) = g(x,y) - g(x+▲x,y+▲y),
其中,g称为灰度差分。设灰度差分值得所有可能取值共m级,令点(x,y)在整个画面上移动,统计出g取各个数值得次数,由此可以做出g得直方图。由直方图可以得到g取值概率p(k)的,当取较小插值k的频率p(k)较大时,反映了纹理交粗糙,直方图平坦时,说明纹理较细致。
相关纹理特征:

p(k)较平坦时,熵较大,能量较小,p(k)越分布在原点附近,则均值越小。
计算灰度差分法统计特征:

>> I = imread('E:\persional\matlab\images\house.tif');
>> A = double(I);
>> [m,n] = size(A);
>> B = A;
>> C = zeros(m,n);%新建全零矩阵
>> for i=1:m-1for j=1:n-1B(i,j) = A(i+1,j+1);C(i,j) = abs(round(A(i,j)-B(i,j)));endend
>> h = imhist(mat2gray(C))/(m*n);%归一化灰度直方图
>> mean=0;con=0;ent=0;%均值,对比度和熵初始值为0
>> for i=1:256mean = mean+(i*h(i))/256;con = con+i*i*h(i);if(h(i)>0)ent = ent-h(i)*log2(h(i));endend
>> subplot(121),imshow(I),title('原图');
>> subplot(122),imshow(C),title('灰度差分');
>> meanmean =0.0382>> concon =327.4435>> entent =3.6956

自相关函数法

纹理常用来描述粗糙性,小数值的纹理测度表示细纹理,大数值测度表示粗纹理,通常采用自相关函数作为纹理检测。设图像为f(x,y),自相关函数的定义为:

一般粗纹理区对给定偏离(ε,η)的相关性要比细纹理高,因而纹理粗造形应与自相关函数的扩展成正比。

定义自定义函数:

function [epsilon,eta,C] = zxcor(f,D,m,n)
for epsilon=1:Dfor eta=1:Dtemp = 0;fp = 0;for x=1:mfor y=1:nif(x+epsilon-1)>m | (y+eta-1)>nf1 = 0;else f1 = f(x,y)*f(x+epsilon-1,y+eta-1);endtemp=f1+temp;fp = f(x,y)*f(x,y)+fp;endendf2(epsilon,eta)=temp;f3(epsilon,eta)=fp;C(epsilon,eta)=f2(epsilon,eta)/f3(epsilon,eta);end
end
epsilon=0:(D-1);%ε方向取值范围
eta=0:(D-1);%η方向取值范围

调用zxcor()函数:

>> I = imread('E:\persional\matlab\images\0.jpg');
>> J = imread("E:\persional\matlab\images\2.jpg");
>> subplot(121),imshow(I),title('图一');
>> subplot(122),imshow(J),title('图二');
>> f1 = rgb2gray(I);
>> f2 = rgb2gray(J);
>> f1 = double(f1);
>> f2 = double(f2);
>> [m1,n1] = size(f1);
>> [m2,n2] = size(f2);
>> D=20;%偏移量
>> [epsilon1,eta1,C1] = zxcor(f1,D,m1,n1);
>> [epsilon2,eta2,C2] = zxcor(f2,D,m2,n2);
>> subplot(121),mesh(epsilon1,eta1,C1);
>> xlabel('epsilon');ylabel('eta');
>> subplot(122),mesh(epsilon2,eta2,C2);
>> xlabel('epsilon');ylabel('eta');



随着ε和η的增大,可见图一变化快,其表面纹理比较粗糙,图二趋近于平稳,可以说其纹理光滑,表面粗糙度越大,曲线变化快,粗造度越小,曲线变化慢。

灰度共生矩阵

由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的像素之间会存在一定的灰度关系,即图像中灰度的空间特征性。灰度共生矩阵就是一种通过研究灰度空间相关特性来描述纹理的常用方法。
灰度直方图是对图像上单个像素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两像素分别具有某灰度的状况进行统计得到的。一幅图像的灰度共生矩阵能反映出图像灰度关于方向、相邻间隔和变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。
设f(x,y)为一幅二维数字图像,S为目标区域R中具有特定空间连续的像素对集合,则满足一定空间关系的灰度共生矩阵P为:

等号右边的分子具有某种空间关系、灰度值分别为g1和g2的像素对的个数,分母为像素对的总个数(#代表数量)。这样得到的P是归一化的,取不同的距离和角度则可能得到不同的灰度共生矩阵,求解过程过选定距离不变,去不同的角度,比如0°、45°、90°和135°的灰度共生矩阵。
如果图像是具有相似灰度值的像素块构成,则灰度共生矩阵的对角元素会有比较大的值;如果图像像素值在局部有变化,那么偏离对角线的元素会有比较大的值。

能量:

灰度共生矩阵元素值的平方和,反应图像灰度分布均匀程度和纹理粗细程度。如果灰度共生矩阵所有值相等,则能量越小;反之,如果一些值大而其他值小,则能量值大。当共生矩阵中元素集中分布时,此时能量值大,能量值大表示一种均一和规则变换=化的纹理模式。

对比度:

反应图像的清晰度和纹理沟纹深浅的程度,纹理沟纹越深,对比度大,视觉效果越清晰,反之对比度越小,视觉效果越模糊。灰度差即对比度大的像素对越多,这个值就大。灰度共生矩阵中远离对角线的元素值越大,对比度越大。

相关:

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

熵:

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

均匀度:

反映纹理的粗糙程度,粗纹理的均匀度较大,细纹理的均匀度较小。

共生矩阵函数graycomatrix()

‘GrayLimits’:两个元素的向量,表示图像中的灰度映射范围,如果设为[ ],灰度共生矩阵将使用图像I的最大值和最小值;
‘NumLevels’:将图像中的灰度归一范围,决定灰度共生矩阵的大小;
‘Offset’:为一个P×2的整数矩阵;
D:当前像素与邻居的距离,0°:[0 D]、45°:[-D D]、90°:[-D 0]和135°:[-D -D]。

>> I = imread('E:\persional\matlab\images\house.tif');
>> glcm = graycomatrix(I,'Offset',[0 2]);
>> glcm

结果显示原图的灰度共生矩阵对角线元素的值较大,表示图像中灰度值接近的像素块多

纹理特征统计值函数garycoprops():

stats = graycoprops(glcm,{‘contrast’,‘correlation’,‘energy’,‘homogeneity’}),返回值为灰度共生矩阵的静态属性;
glcm:灰度共生矩阵;
‘Contrast’:对比度,返回整幅图像中像素和它相邻像素之间的亮度反差,取值范围[0 ~ (glcm的行数-1)2];
‘Correlation’:相关性,图像中像素与其相邻像素是如何相关的度量值,取值范围为[-1,1];
‘Energy’:能量,像素的平方和,取值范围[0,1];
‘Homogemeity’:同质性,glcm中元素分布到对角线的紧密程度,取值范围[0,1],对角矩阵同质性为1。

遥感图像基于共生矩阵的纹理特征统计:

>> I = imread('map1.tif');
>> HSV = rgb2hsv(I);
>> Hgray = rgb2gray(HSV);
>> glcms1 = graycomatrix(Hgray,'numlevels',64,'offset',[0 1;-1 1;-1 0;-1 -1]);%纹理特征统计值(对比度、相关性、熵、平稳度二阶矩)
>> stars = graycoprops(glcms1,{'contrast','correlation','energy','homogeneity'});
>> ga1 = glcms1(:,:,1);%0°
>> ga2 = glcms1(:,:,2);%45°
>> ga3 = glcms1(:,:,3);%90°
>> ga4 = glcms1(:,:,4);%145°
>> energya1 = 0;energya2 = 0;energya3=0;energya4=0;
>> for i=1:64
for j=1:64
energya1 = energya1+sum(ga1(i,j)^2);
energya2 = energya2+sum(ga2(i,j)^2);
energya3 = energya3+sum(ga3(i,j)^2);
energya4 = energya4+sum(ga4(i,j)^2);
j=j+1;
end
i=i+1;
end
>> s1=0;s2=0;s3=0;s4=0;s5=0;%对比度
>>> for m=1:4
s1 = stars.Contrast(1,m)+s1;
end
>>  for m=1:4
s2 = stars.Correlation(1,m)+s2;%相关性
end
>>  for m=1:4
s3 = stars.Energy(1,m)+s3;%熵
end
>>  for m=1:4
s4 = stars.Homogeneity(1,m)+s4;%平稳度
end
>> s5 = 0.000001*(energya1+energya2+energya3+energya4);%二阶矩



由图可得山脉对比度远高于城市和台风;山脉与城市的相关性接近,台风的相关性为负值;台风的熵值与城市接近大于山脉;山脉和城镇的对比度和平稳度参数有一定的差距,可以用来区分山脉和海洋。

纹理特征描述及matlab实现相关推荐

  1. matlab程序图像灰度差分,纹理特征描述之灰度差分统计特征(平均值 对比度 熵) 计算和比较两幅纹理图像的灰度差分统计特征 matlab代码实现...

    灰度差分统计特征有: 平均值: ​ 对比度: ​ 熵: ​ i表示某一灰度值,p(i)表示图像取这一灰度值的概率 close all;clear all;clc; % 纹理图像的灰度差分统计特征 J ...

  2. 纹理特征描述之自相关函数法 纹理粗糙性与自相关函数的扩展成正比 matlab代码实现

    图像中通常采用自相关函数作为纹理测度 自相关函数的定义为: 调用自定义函数 zxcor()对砖墙面和大理石面纹理进行分析: 自定义函数 zxcor(): function [epsilon,eta,C ...

  3. 纹理特征描述之灰度差分统计特征(平均值 对比度 熵) 计算和比较两幅纹理图像的灰度差分统计特征 matlab代码实现

    灰度差分统计特征有: 平均值: 对比度: 熵: i表示某一灰度值,p(i)表示图像取这一灰度值的概率 close all;clear all;clc; % 纹理图像的灰度差分统计特征 J = imre ...

  4. 基于LBP纹理特征计算GLCM的纹理特征统计量+SVM/RF识别纹理图片

    作者 | Raini 出品 | 北京图特摩斯科技有限公司 (thutmose.cn) 说在前头: 局部特征检测方法 斑点Blob检测,LoG检测 , DoG,DoH检测,SIFT算法,SUFT算法 边 ...

  5. 关于纹理特征的基础知识介绍

    纹理特征的定义:纹理特征刻画了图像中重复出现的局部模式与他们的排列规则,常用于图像分类和场景识别. 纹理特征描述的含义:其只能反映物体表面的特性,无法完全反映出物体的本质属性,所以仅仅利用纹理特征无法 ...

  6. 图像特征分析(一):颜色特征描述,颜色矩,颜色直方图(附matlab代码)

    图像分析可以看作是一个图像信息提取的过程,从图像中获取需要的有用的数据.图像特征可以分为视觉特征和统计特征,视觉特征主要是指人的视觉直观感受到的自然特征,比如图像的颜色.纹理.形状等,统计特征是指需要 ...

  7. 基于颜色特征,形状特征和纹理特征的数字图像的检索(Digital Image Retrieval)MATLAB GUI实现(本科毕业设计)

    该程序实现的功能为:检索出指定的图像文件,并从检索出的图像中检索出指定的物体 . 1,主程序为Recognition和Recognition. 2.颜色特征,形状特征,纹理特征为对应的各子程序. 3. ...

  8. 傅里叶描述子、HOG特征描述子原理及matlab代码

    一.傅里叶描述子 傅里叶描述子的作用是用来描述图像的轮廓信息,具有平移.旋转.尺度不变性特征. 对于一幅图像,通过傅里叶描述子获得其图像轮廓信息,其本质就是空间.频域变换问题.通过将图像中的像素点进行 ...

  9. 【图像算法】图像特征:GLCM灰度共生矩阵纹理特征

    [图像算法]图像特征:GLCM SkySeraph Aug 27th 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modifie ...

最新文章

  1. 实现iOS App的在线安装
  2. 20145214 《Java程序设计》第3周学习总结
  3. Python 新浪微博 各种表情使用频率
  4. unity如何得到所有子对象_Unity用户手册-Mesh合批
  5. LeetCode Week 6:第 51 ~ 55 题
  6. pm2启动jenkins不存在tty的问题
  7. StyleGAN v2:对StyleGAN v1的思考与改进
  8. 10 Love Quotes Touch Your Soul at First Sight
  9. 常用wed扫描工具 awvs|appscan|Netsparker|Nessus
  10. android dagger2 讲解,dagger 2 详解
  11. 1.100个房产测量常见问题  2. 现有的商用房产测绘软件 3.问题_拔剑-浆糊的传说_新浪博客...
  12. 13号线ab线规划图_北京地铁13号线拆分成这样了(附图)
  13. 【自然语言处理】【实体匹配】PromptEM:用于低资源广义实体匹配的Prompt-tuning
  14. Python中最快的搜索引擎之一:ThreadSearch(自己开发)(abccdee1)
  15. python中的可迭代是什么意思_Python可迭代跟迭代器的区别
  16. 实现语音对讲_校园IP广播对讲融合解决方案
  17. android 多个catch,【Android开发坑系列】之try-catch
  18. python规范化货币_Python货币资金科目分析
  19. 死亡细胞1.9最新辅助
  20. Cesium最新基础教程系列2—Viewer离线加载地图数据(高程数据,地图瓦片(卫星影像、电子地图)),Viewer属性详解,及离线自定义图层

热门文章

  1. 关于计算机类的SAS论文,浅析SAS软件教学中内容与形式的结合论文
  2. AtCoder褐名记
  3. 微信小程序的导航栏颜色
  4. 组合数学——二项式反演
  5. JVM的内存分配与回收策略实战——对象优先在Eden分配
  6. react面试题合集(附答案)
  7. CSS选择器完整参考手册
  8. 士兵队列训练问题:某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的
  9. 仅拍125个视频就成为千万级网红? Python告诉你:李子柒的网红路
  10. CAN总线数据转成多路RS485信号方式,竣达技术来给您解析