0

我一直在考虑在 MATLAB 中使用graycomatrix. 我发现了两个论点(NumLevelsGrayLimits),但在我的研究和实施中,它们似乎达到了相同的结果。

GrayLimits范围集之间的指定箱[low high],导致一组受限的灰度级。

NumLevels声明图像中的灰度级数。

有人可以解释这两个论点之间的区别,因为我不明白为什么会有两个论点达到相同的结果。

4

1 回答 1

1

文档中

'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

如您所见,这些参数以不同的方式修改输出:

  1. 在上面的第一种情况下,范围 [0,255] 被映射到第 1-8 列/行,将 32 个不同的输入灰度值放入每个中。
  2. 在第二种情况下,较小的范围 [0,127] 被映射到 8 个索引,将 16 个不同的输入灰度值放入每个索引,并将剩余的灰度值 128-255 放入第 8 个索引。
  3. 在第三种情况下,范围 [0,255] 映射到 4 个索引,将 64 个不同的输入灰度值放入每个索引。
于 2018-11-23T05:35:14.257 回答