我一直在考虑在 MATLAB 中使用graycomatrix
. 我发现了两个论点(NumLevels
和GrayLimits
),但在我的研究和实施中,它们似乎达到了相同的结果。
GrayLimits
范围集之间的指定箱[low high]
,导致一组受限的灰度级。
NumLevels
声明图像中的灰度级数。
有人可以解释这两个论点之间的区别,因为我不明白为什么会有两个论点达到相同的结果。
我一直在考虑在 MATLAB 中使用graycomatrix
. 我发现了两个论点(NumLevels
和GrayLimits
),但在我的研究和实施中,它们似乎达到了相同的结果。
GrayLimits
范围集之间的指定箱[low high]
,导致一组受限的灰度级。
NumLevels
声明图像中的灰度级数。
有人可以解释这两个论点之间的区别,因为我不明白为什么会有两个论点达到相同的结果。
从文档中:
'GrayLimits'
:用于将输入图像缩放为灰度的范围,指定为二元素向量[low high]
。'NumLevels'
如果 N 是用于缩放的灰度级数(参见参数),则范围[low high]
被划分为 N 个等宽的 bin,并且 bin 中的值映射到单个灰度级。
'NumLevels'
:灰度级数,指定为整数。
因此,第一个参数设置要使用的输入灰度范围(默认为图像中的最小值和最大值),第二个参数设置所考虑的唯一灰度的数量(以及输出矩阵的大小,默认为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
如您所见,这些参数以不同的方式修改输出: