graycomatrix 的 NumLevels 和 GrayLimits 是同一个东西 MATLAB
Is graycomatrix's NumLevels and GrayLimits the same thing MATLAB
我一直在考虑使用 graycomatrix
在 MATLAB 中实现 GLCM。我发现了两个论点(NumLevels
和 GrayLimits
),但在我的研究和实施中,它们似乎取得了相同的结果。
GrayLimits
在范围集 [low high]
之间指定了 bin,导致灰度级集受限。
NumLevels
声明图像中的灰度级数。
谁能解释一下这两个参数之间的区别,因为我不明白为什么会有两个参数达到相同的结果。
'GrayLimits'
: Range used scaling input image into gray levels, specified as a two-element vector [low high]
. If N is the number of gray levels (see parameter 'NumLevels'
) to use for scaling, the range [low high]
is divided into N equal width bins and values in a bin get mapped to a single gray level.
'NumLevels'
: Number of gray levels, specified as an integer.
因此,第一个参数设置要使用的输入灰度级范围(默认为图像中的最小值和最大值),第二个参数设置考虑的唯一灰度级数(以及因此的大小输出矩阵,默认为 8,或二值图像为 2)。
例如:
>> graycomatrix(img,'NumLevels',8,'GrayLimits',[0,255])
ans =
17687 1587 81 31 7 0 0 0
1498 7347 1566 399 105 8 0 0
62 1690 3891 1546 298 38 1 0
12 335 1645 4388 1320 145 4 0
2 76 305 1349 4894 959 18 0
0 16 40 135 965 7567 415 0
0 0 0 2 15 421 2410 0
0 0 0 0 0 0 0 0
>> graycomatrix(img,'NumLevels',8,'GrayLimits',[0,127])
ans =
1 9 0 0 0 0 0 0
7 17670 1431 156 50 31 23 15
1 1369 3765 970 350 142 84 92
0 128 1037 1575 750 324 169 167
0 46 361 836 1218 747 335 260
0 16 163 330 772 1154 741 547
0 10 74 150 370 787 1353 1208
0 4 67 136 294 539 1247 21199
>> graycomatrix(img,'NumLevels',4,'GrayLimits',[0,255])
ans =
28119 2077 120 0
2099 11470 1801 5
94 1829 14385 433
0 2 436 2410
如您所见,这些参数以不同的方式修改输出:
- 在上面的第一种情况下,范围 [0,255] 被映射到 columns/rows 1-8,将 32 个不同的输入灰度值放入每个。
- 第二种情况,较小的范围[0,127]被映射到8个索引,每个索引放入16个不同的输入灰度值,其余灰度值128-255放入第8个索引
- 在第三种情况下,范围 [0,255] 被映射到 4 个索引,每个索引放入 64 个不同的输入灰度值。
我一直在考虑使用 graycomatrix
在 MATLAB 中实现 GLCM。我发现了两个论点(NumLevels
和 GrayLimits
),但在我的研究和实施中,它们似乎取得了相同的结果。
GrayLimits
在范围集 [low high]
之间指定了 bin,导致灰度级集受限。
NumLevels
声明图像中的灰度级数。
谁能解释一下这两个参数之间的区别,因为我不明白为什么会有两个参数达到相同的结果。
'GrayLimits'
: Range used scaling input image into gray levels, specified as a two-element vector[low high]
. If N is the number of gray levels (see parameter'NumLevels'
) to use for scaling, the range[low high]
is divided into N equal width bins and values in a bin get mapped to a single gray level.
'NumLevels'
: Number of gray levels, specified as an integer.
因此,第一个参数设置要使用的输入灰度级范围(默认为图像中的最小值和最大值),第二个参数设置考虑的唯一灰度级数(以及因此的大小输出矩阵,默认为 8,或二值图像为 2)。
例如:
>> graycomatrix(img,'NumLevels',8,'GrayLimits',[0,255])
ans =
17687 1587 81 31 7 0 0 0
1498 7347 1566 399 105 8 0 0
62 1690 3891 1546 298 38 1 0
12 335 1645 4388 1320 145 4 0
2 76 305 1349 4894 959 18 0
0 16 40 135 965 7567 415 0
0 0 0 2 15 421 2410 0
0 0 0 0 0 0 0 0
>> graycomatrix(img,'NumLevels',8,'GrayLimits',[0,127])
ans =
1 9 0 0 0 0 0 0
7 17670 1431 156 50 31 23 15
1 1369 3765 970 350 142 84 92
0 128 1037 1575 750 324 169 167
0 46 361 836 1218 747 335 260
0 16 163 330 772 1154 741 547
0 10 74 150 370 787 1353 1208
0 4 67 136 294 539 1247 21199
>> graycomatrix(img,'NumLevels',4,'GrayLimits',[0,255])
ans =
28119 2077 120 0
2099 11470 1801 5
94 1829 14385 433
0 2 436 2410
如您所见,这些参数以不同的方式修改输出:
- 在上面的第一种情况下,范围 [0,255] 被映射到 columns/rows 1-8,将 32 个不同的输入灰度值放入每个。
- 第二种情况,较小的范围[0,127]被映射到8个索引,每个索引放入16个不同的输入灰度值,其余灰度值128-255放入第8个索引
- 在第三种情况下,范围 [0,255] 被映射到 4 个索引,每个索引放入 64 个不同的输入灰度值。