2017-01-28 30 views
0

Я прочитал в Интернете, что изображение в оттенках серого имеет 256 возможных значений. Но в Matlab, когда я пробовал это: -Размер цветовой карты (серый)

>> a=colormap(gray); 
>> whos a 
    Name  Size   Bytes Class  Attributes 

    a   64x3    1536 double 

Он показывает, что цветной (серый) имеет только 64 значения. Почему это так?

ответ

2

По умолчанию длина цветной карты составляет 64 значения.
Вы можете использовать a=colormap(gray(256)); или лучше использовать: a=gray(256); для 256 значений.

В целом colormap теперь имеет специальную обработку для уровней серого.
colormap - это вид «Look Up Table», который отображает «индекс» в триплет RGB (триплетное значение шкалы серого означает R = G = B).
256 значений достаточно для всех возможных уровней серого, но для покрытия всех уровней RGB (при условии байта на цветной канал) вам нужно: 256^3 = 16777216 значений.

Значения по умолчанию 64 применяют 64 образца из 256 уровней серого (между выборками имеются «промежутки» квантования).

Примеры:

gray(2)
Результат: 2 уровней серого (0 и 1):
0 0 0 (черный)
1 1 1 (белый)

gray(4)
Результат: 4 уровней серого:
0 0 0 (черный)
0.3333 0.3333 0.3333 (темный серый)
0.6667 0.6667 0.6667 (светло-серый)
1.0000 1.0000 1.0000 (белый)
Как вы можете видеть, минимум 0, максимум 1, и уровни между ними являются 1/3 и 2/3.

Одинаковый принцип для gray(64) ...