Prerequisites

概念

计算方式

对于精度要求高且纹理细密的纹理分布,我们取像素间距为d=1d = 1,以下是方向的说明:

我们来看,matlab内置工具箱中的灰度共生矩阵的生成函数graycomatrix(gray-level co-occurrence matrix)对方向的说明:

如上图所示,方向是在每一个像素点(pixel of interest)的邻域(当然,边界点除外)中获得的,只不过这里的坐标系变为了:

  • δ=(0,±1)\delta=(0, \pm 1)为水平方向扫描,也即θ=0∘orθ=180∘\theta = 0^\circ or \theta = 180^\circ;
  • δ=(±1,0)\delta=(\pm 1, 0)为垂直扫描(θ=90∘orθ=−90∘\theta = 90^\circ or \theta = -90^\circ);
  • δ=(1,−1),δ=(−1,1)\delta = (1, -1), \delta = (-1, 1)是−45∘-45^\circ或135∘135^\circ扫描;
  • δ=(1,1),δ=(−1,−1)\delta = (1, 1), \delta = (-1, -1)是45∘45^\circ扫描。

一旦像素间距离dd以及像素间空间位置关系δ\delta确定,即可生成灰度共生矩阵。

GLCM所表示的是纹理图像的某些统计特性,所谓统计,通俗地讲就是累计某种情况出现的次数,用这一次数除以总的情况数,即可得其统计意义上的概率。

我们来统计灰度级2与2在-45度和135度方向上(也即δ=(1,−1)\delta = (1, -1) 或者δ=(−1,1)\delta=(-1, 1))出现的次数,如图所示,共出现九次,在两个方向上即是18次。

matlab

matlab相关工具箱函数

使用灰度共生矩阵(GLCM)描述和提取图像纹理特征,是一个强大且流行的工具,自然matlab工具箱会提供相应的函数——graycomatrix

给出一个图像矩阵,设置一些参数,得到其灰度共生矩阵,这就是函数的基本用法:

[glcm, SI] = graycomatrix(I, ...)

主要的参数有二个,分别是

  1. NumLevels(灰度级数)

最终glcm的size是NumLevels*NumLevels

  1. Offset(方向[0, 1; -1, 1; -1, 0; -1, -1]):

[0, 1]中的1表示的偏移数(offset),当然也可以取2或者更多,如上文所说,对于精度要求高且图像纹理本身即很丰富的图像来说,为了更精细地刻画,我们取偏移量(offset)为1

我们将原始I转换为SI,对SI计算GLCM,SI中元素的值介于[1, NumLevels]之间。

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', [])
% 'Offset'的default值为`[0, 1]`
glcm =0     0     2     0     0     0     0     0     00     1     0     0     0     1     0     0     00     0     0     2     0     0     0     0     00     0     0     0     0     2     0     0     00     0     0     0     0     0     0     0     00     0     0     0     0     0     2     1     00     0     0     0     0     0     0     1     11     0     0     0     0     0     0     0     00     0     0     0     0     0     0     0     1SI =2     2     6     7     9     93     4     6     8     1     31     3     4     6     7     8

demo

这里先写一个demo,稍微有点难懂的地方在于灰度共生矩阵的计算方式,然后是一些编程上的循环判断。其他方向的情况还未考虑(在第三和第四层循环的地方可能会略有不同),以及将其封装成一个函数的操作还是留待以后吧:

clear, clc
P = [ 0 1 2 0 1 2 1 2 0 1 2 02 0 1 2 0 10 1 2 0 1 21 2 0 1 2 02 0 1 2 0 1];
[r, c] = size(P);
P_u = unique(P);        % 去重,得到所有的灰度级
n = length(P_u);        % 不同灰度级的个数
G = zeros(n, n);        % 初始化灰度共生矩阵为全0矩阵,%% 四层循环,最外层的两层循环用来为GLCM的各个位置赋值
% 内层的两层循环时遍历原始图像矩阵,累计符合某一对应关系的的情况出现的次数for p = 1:n,for q = 1:n,cnt = 0;            % GLCM刻画的是灰度图像像素的统计特性,在matlab中通过次数的统计计算得到for i = 1:r,for j = 1:c,if  (j+1) <= c && ((P(i, j) == p && P(i, j+1) == q) || P(i, j) == q && P(i, j+1) == p),cnt = cnt + 1;endendendG(p, q) = cnt;end
end
G

References

[1] <图像特征提取——灰度共生矩阵(GLCM)>

灰度共生矩阵GLCM及其matlab实现相关推荐

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

    Gray-level co-occurrence matrix from an image 图像的灰度共生矩阵 灰度共生矩阵是像素距离和角度的矩阵函数,它穿越计算图像中定然距离和定然方向的两点灰度之间 ...

  2. 灰度共生矩阵(GLCM)

    灰度共生矩阵(GLCM) 算法简介 灰度共生矩阵法(GLCM, Gray - level co - occurrence matrix),就是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得 ...

  3. 基于灰度共生矩阵(GLCM)的图像纹理分析与提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 灰度共生矩阵 灰度共生矩阵(Gray Level CO-Occur ...

  4. 计算灰度共生矩阵GLCM

    灰度共生矩阵 灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻的方向.相邻间隔.变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础. ...

  5. 二维特征分类的基础_纹理特征1:灰度共生矩阵(GLCM)

    GLCM复习备用: 纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面 ...

  6. 灰度共生矩阵及matlab实现

    matlab函数: graycomatrix() 功           能:创建灰度共生矩阵 Gray-level co-occurrence matrix from an image 图像的灰度共 ...

  7. 关于灰度共生矩阵的一点知识(MATLAB)

    目录 一.基本理论 1.背景 2.概念 3.含义 4.例证 5.规律 二.特征量 1.对比度(contrast) 2.角二阶矩(Angular Second Moment, ASM) 3.熵(entr ...

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

    纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面性质的纹理概念,可以 ...

  9. 灰度共生矩阵特征提取步骤_灰度共生矩阵纹理特征提取的Matlab实现

    灰度共生矩阵纹理特征提取的 Matlab 实现 焦蓬蓬 ; 郭依正 ; 刘丽娟 ; 卫星 [期刊名称] <计算机技术与发展> [年 ( 卷 ), 期] 2012(000)011 [摘要] ...

最新文章

  1. Vue.js 学习路线
  2. 百度新闻后台逻辑流程分析
  3. android 编译器有问题,Android Studio 3.0 Beta 2发布:解决编译器bug
  4. magento 高级搜索 brand实例 Magento ‘Shop By Brand’ in SideBar
  5. 回望2017:一个前端从业者砥砺前行的一年
  6. 用c语言编写最大最小值_C语言学习教程,用C语言编写扫雷游戏
  7. php array 删除末尾,PHP array_pop():删除数组末尾的元素
  8. aix 在线软件包安装 字符集 mysql安装
  9. 2022中国边缘计算企业20强
  10. 再起风云的社交电商,到底是穷途末路还是柳暗花明?
  11. iOS Info.plist知多少
  12. UNITY材质球合并
  13. 基于SSM框架的狼途汽车门店管理系统的设计与实现
  14. 高德地图API调用自定义地图使用
  15. 关于红帽RHCE考试的那些事儿
  16. Chrome如何使用
  17. 大话设计模式系列目录
  18. 燕十八 mysql 复习_燕十八 Mysql 笔记 68 课
  19. 快速入门CSS || 干货 自整语句大全
  20. 导航基础之坐标系整理——导航坐标系、地球坐标系、载体坐标系

热门文章

  1. 虚拟机centos7 git clone特别慢_从文件生命周期看GIT的提交流程
  2. excel表格导入功能
  3. 清空缓存的命令_布隆过滤器应用——解决Redis缓存穿透问题
  4. 全局负载均衡通俗介绍_“集群和负载均衡”等的通俗解释
  5. 51nod 1770 数数字
  6. 机器学习——HMM(隐马尔可夫模型的基本概念)(一)
  7. 数学趣事(自然数的因数)
  8. 用pyinstaller把python脚本编译成可执行程序(windows系统)
  9. 可能比文档还详细--VueRouter完全指北
  10. JavaScript 01