主要内容

graycomatrix

从图像创建灰度共现矩阵

描述

glcms= graycomatrix (从图像创建灰度共生矩阵(GLCM).灰度共现矩阵的另一个名称是a灰度空间依赖矩阵

graycomatrix通过计算像素的灰度(灰度强度)值的频率来创建GLCM与值相邻的像素水平发生j.方法可以指定其他像素空间关系“补偿”参数)。每个元素(我,我)glcm指定像素带有值的次数与有值的像素水平相邻发生j

例子

glcms= graycomatrix (名称,值根据可选的名称-值对参数的值,返回一个或多个灰度共现矩阵。

例子

glcms如果= graycomatrix(___返回缩放后的图像,如果,用于计算灰度共现矩阵。

例子

全部折叠

将灰度图像读入工作空间。

I = imread(“circuit.tif”);imshow(我)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

计算灰度图像的灰度共生矩阵。默认情况下,graycomatrix根据像素的水平接近度计算GLCM:[0 1]。这是同一行上与感兴趣的像素相邻的像素。此示例指定了不同的偏移量:同一列上相隔两行。

glcm = graycomatrix(I,“抵消”[2 0])
glcm =8×814205 2107 126 00 00 2242 14052 3555 400 00 00 191 3579 7341 1505 37 00 00 683 1446 7184 1368 00 00 7 116 1502 10256 1124 00 00 00 2 1153 1435 00 00 00 00 00 00 00 00 00 00 0

创建一个简单的3 × 6示例数组。

I = [1 1 5 6 8 8;2 3 5 7 0 2;0 2 3 5 6 7]
我=3×61 1 5 6 8 8 2 3 5 7 0 2 2 3 3 6 7

计算灰度共生矩阵(GLCM),返回计算所用的缩放图像。的空方括号GrayLimits参数,该示例使用输入图像中的最小和最大灰度值作为限制。

[glcm,SI] = graycomatrix(I,“NumLevels”9“GrayLimits”[])
glcm =9×90 0 2 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
如果=3×62 2 6 7 9 9 3 4 6 8 1 3 1 3 4 6 7 8

将灰度图像读入工作空间。

I = imread(“cell.tif”);imshow(我)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

定义四个偏移量。

offset = [0 1;-1 0;-1 -1];

计算glcm,返回缩放后的图像。显示缩放后的图像,执行额外的数据值缩放到范围[0,1]。

[glcms,SI] = graycomatrix(I,“抵消”、补偿);imshow(重新调节(SI))

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

注意函数如何返回一个由四个glcm组成的数组。

名称大小字节类属性I 159x191 30369 uint8 SI 159x191 242952双glcms 8x8x4 2048双偏移4x2 64双

将灰度图像读入工作空间。

I = imread(“circuit.tif”);imshow(我)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

方法计算GLCM对称的选项,同时返回缩放后的图像。设置时创建的GLCM对称的真正的在对角线上是对称的,等价于Haralick(1973)所描述的GLCM。

[glcm,SI] = graycomatrix(I,“抵消”(2 0),“对称”,真正的);glcm
glcm =8×828410 4349 317 0 0 0 0 4349 28104 7134 1083 70 0 0 317 7134 14682 2951 153 0 0 0 0 0 1083 2951 14368 2870 20 0 0 7 153 2870 20512 2277 0 0 0 0 0 0 0 2 2277 2870 0 0 0 0 0 0 0 0 0 0 0 0 0

显示缩放后的图像,执行额外的数据值缩放到范围[0,1]。

imshow(重新调节(SI))

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

输入参数

全部折叠

输入图像,指定为二维数字矩阵或二维逻辑矩阵。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“抵消”,[2 0]

用于将输入图像缩放到灰度级别的范围,指定为一个2元素向量(低高).如果N灰度的数量(见参数“NumLevels”)用于缩放,即范围(低高)分为N等宽度的箱子和箱子中的值被映射到一个单一的灰色级别。灰度值小于或等于都缩放到1。灰度值大于或等于被缩放到“NumLevels”.如果“GrayLimits”设置为[]graycomatrix中的最小和最大灰度值的限制,我(:)[min()马克斯(我(:))),例如,[0 1]对于双人班和(-32768 32767)为类int16

灰度数,指定为正整数。例如,如果NumLevels8,然后graycomatrix中的值缩放它们是1到8之间的整数。灰度的数量决定了灰度共现矩阵的大小(glcm).默认的灰度值为8对于数字图像和2对于逻辑图像。

感兴趣的像素与其相邻像素之间的距离,用a表示p-乘2的整数矩阵。矩阵中的每一行都是一个双元素向量,[row_offset, col_offset],它指定关系,或者抵消,一对像素。row_offset是感兴趣像素与其相邻像素之间的行数。col_offset是感兴趣像素与其相邻像素之间的列数。因为偏移量通常用角度表示,所以下表列出了指定公共角度的偏移量值(给定像素距离D)。

抵消

0

[0 D]

45

[- D D]

90 (0 - d)
135 [- d - d]

下图说明了该数组:Offset = [0 1;1 1;1 0;1 (1)

考虑值的顺序,指定为布尔值真正的.例如,当“对称”设置为真正的graycomatrix在计算值1与值2相邻的次数时,计算1,2和2,1对。当“对称”设置为graycomatrix只计算1,2或2,1,取决于的值“抵消”

数据类型:逻辑

输出参数

全部折叠

灰度共现矩阵(或矩阵),返回为NumLevels——- - - - - -NumLevels——- - - - - -P数组,P偏移量在吗抵消

数据类型:

缩放图像用于计算GLCM,返回与输入图像相同大小的数字矩阵。中的值如果之间1而且NumLevels

数据类型:

算法

graycomatrix从图像的缩放版本计算GLCM。默认情况下,如果是二值图像,graycomatrix将图像缩放到两个灰度级。如果是一个强度图像,graycomatrix将图像缩放到8个灰度级。您可以指定灰度的数量graycomatrix控件来缩放图像“NumLevels”参数,以及graycomatrix方法缩放值“GrayLimits”名称-值参数。

下图显示了如何操作graycomatrix计算4 × 5图像的GLCM中的几个值.GLCM中的元素(1,1)包含该值1因为在图像中只有一个实例,两个水平相邻的像素有这些值1而且1.元素(1、2)在GLCM中包含该值2因为在图像中有两个实例,两个水平相邻的像素有这些值1而且2graycomatrix继续此处理,以填写GLCM中的所有值。

graycomatrix如果像素中有一个包含,取代正值为NumLevels,并替换负值为1graycomatrix如果相应的邻居像素落在图像边界之外,则忽略边界像素。

创建的GLCM“对称”设置为真正的在对角线上是对称的,等价于Haralick(1973)所描述的GLCM。由以下语法生成的GLCM“对称”设置为真正的

graycomatrix(我“抵消”[0, 1],“对称”,真正的)

等于以下语句生成的两个glcm之和,其中“对称”设置为

graycomatrix(我“抵消”[0, 1],“对称”假)graycomatrix(我“抵消”[0, 1],“对称”假)

参考文献

[1] Haralick, r.m., K. Shanmugan和I. Dinstein,“图像分类的纹理特征”,IEEE系统,人与控制论汇刊,Vol. SMC-3, 1973, pp. 610-621。

[2]哈拉里克,r.m.和L.G.夏皮罗。计算机与机器人视觉:第一卷,Addison-Wesley, 1992年,第459页。

版本历史

R2006a之前介绍过