Является ли NumLevels и GrayLimits от Graycomatrix одним и тем же MATLAB - PullRequest
0 голосов
/ 22 ноября 2018

Я смотрел на реализацию GLCM в MATLAB, используя graycomatrix.Есть два аргумента, которые я обнаружил (NumLevels и GrayLimits), но в моем исследовании и реализации они, кажется, достигают того же результата.

GrayLimits указанные интервалы между установленным диапазоном [low high], вызывающие ограниченный набор уровней серого.

NumLevels объявляет количество уровней серого в изображении.

Может, кто-нибудь объяснит разницу между этими двумя аргументами, поскольку я не понимаю, почему было бы два аргумента, которые достигают одного и того же результата.

1 Ответ

0 голосов
/ 23 ноября 2018

Из документации :

'GrayLimits': диапазон, используемый для масштабирования входного изображения до уровней серого, заданных как двухэлементный вектор [low high].Если N - это количество уровней серого (см. Параметр 'NumLevels'), которое нужно использовать для масштабирования, диапазон [low high] делится на N бинов равной ширины, а значения в бине отображаются на один уровень серого.

'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 в твосьмой индекс.
  3. В третьем случае диапазон [0,255] был сопоставлен с 4 индексами, в каждом из которых по 64 различных входных значения серого.
...