MATLAB中的灰度共生矩阵

使用纹理来识别图像中的感兴趣区域是一项至关重要的特征。早在1973年,Haralick等人就提出了最早纹理特征提取方法之一——灰度共生矩阵。从那时起,它被广泛用于各种纹理分析应用,并继续作为纹理分析中特征提取的重要技术。Haralick使用GLCM提取了14个特征来描述纹理。在基于内容的图像检索(CBIR)应用中,Dacheng等人利用了3D共生矩阵。为了匹配和识别物体,Kovalev和Petrov使用了特殊的多维共生矩阵。聚类方法利用了多维纹理分析,这一点首先得到了证明。这项工作的目标是共生矩阵及其从n维欧几里得空间提取额外特征,它将该概念扩展到了这些空间。在CBIR应用中,新定义的特征被证明非常有用。

灰度共生矩阵 (GLCM):

GLCM为我们提供了相邻或邻近像素之间的空间关系。我们将从这个GLCM矩阵中计算一些纹理特征。GLCM被称为二阶统计纹理分析方法。它测量在给定方向和距离d下像素在图像中出现的频率,并检查它们之间的空间关系。灰度空间依赖矩阵是灰度共生矩阵的另一个名称。通过计算具有相同灰度强度值——i和j——的两个像素在水平方向上彼此相邻出现的频率,灰度矩阵生成GLCM。

语法:

> glcms = graycomatrix(I)

>

>

> glcms = graycomatrix(I,Name,Value)

>

>

> [glcms,SI] = graycomatrix(_)

  • glcms- 从图像I,graycomatrix(I) 生成一个灰度共生矩阵 (GLCM),也称为灰度空间依赖矩阵。
  • glcms- 根据可选的名称-值对参数的值,graycomatrix(I, Name, Value) 返回一个或多个灰度共生矩阵。
  • [glcms,SI]- graycomatrix(_) 返回用于计算灰度共生矩阵的缩放图像 SI。

计算 GLCM 矩阵:

让我们使用 graycomatrix 函数来构建 GLCM。该函数通过确定具有强度(灰度级)值 I 的像素与具有值 j 的像素在特定空间关系中出现的频率,来生成灰度共生矩阵 (GLCM)。空间关系的默认定义是感兴趣像素及其右侧像素(水平相邻),但我们可以指定两个像素之间的其他空间关系。最终 glcm 中每个元素 是输入图像中值为 I 的像素在与值为 j 的像素的指定空间关系中出现的次数的简单累加。

图像中灰度级的数量决定了 GLCM 的大小。Graycomatrix 默认使用缩放将图像中的强度值减少到8个。但是,我们可以利用 NumLevels 和 GrayLimits 参数来控制这种灰度级的缩放。

我们可以从灰度共生矩阵中了解纹理图像中灰度级的空间分布。例如,如果 GLCM 中的大多数条目沿对角线集中,则相对于指定的偏移量,纹理是粗糙的。GLCM 还可用于计算许多统计度量。

示例 1:

Matlab


CODEBLOCK_9ce7a401

输出:

!imageOUTPUT

解释:

这里计算了一个像素及其相邻像素出现的次数。偏移量为1,但我们可以根据需要增加。在这里,像素的移动是向右的。量化级别设置为9,因为矩阵X中的每个像素的最大值为9。在前面的例子中,例如,像素6及其邻居7在矩阵X中出现了6次,GLCM矩阵在位置(6,7)将它们更新为2。

示例 2:

Matlab


CODEBLOCK_ab5fc038

输出:

!Input image

![image](https://media.geeksforgeeks.o

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/42961.html
点赞
0.00 平均评分 (0% 分数) - 0