Как данные изображения относятся к палитре

Когда вы изображения на дисплее с помощью функции image, можно управлять, как область значений пиксельных значений сопоставляет с областью значений палитры. Например, вот магический квадрат 5 на 5, отображенный как изображение с помощью палитры по умолчанию.

A = magic(5) 
A = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

im = image(A);
axis off
colorbar

A содержит значения между 1 и 25. MATLAB® обрабатывает те значения как индексы в палитру, которая имеет 64 записи. Таким образом, все пиксели в предыдущей карте изображения к первым 25 записям в палитре (примерно синяя область шкалы палитры).

Можно управлять этим отображением со свойством CDataMapping объекта Image. Поведение по умолчанию, показанное в предыдущей схеме, соответствует опции 'direct' для этого свойства. Прямое отображение полезно, когда вы отображаете изображения (такие как изображения GIF), которые содержат их собственную палитру. Однако, если ваше изображение представляет измерения некоторой физической единицы измерения (e. g., метры или градусы), затем устанавливает свойство CDataMapping на 'scaled'. Масштабированное отображение использует полный спектр цветов, и это позволяет вам визуализировать относительные различия в своих данных.

im.CDataMapping = 'scaled';

Опция 'scaled' сопоставляет наименьшее значение в A к первой записи в палитре и сопоставляет самое большое значение в картах A к последней записи в палитре. Все промежуточные значения A линейно масштабируются к палитре.

Как альтернатива установке свойства CDataMapping к 'scaled', можно вызвать функцию imagesc, чтобы получить тот же эффект.

imagesc(A);
axis off
colorbar

Если вы изменяете палитру, значения в A масштабируются к новой палитре.

colormap(gray);

Масштабированное отображение также полезно для отображения графических изображений, которые не имеют никакой палитры, или когда это необходимо изменить палитру для графического изображения. Следующие команды отображают изображение с помощью палитры gray, которая отличается, чем исходная палитра, которая сохранена этим изображением.

load clown
image(X,'CDataMapping','scaled');
colormap(gray);
axis off
colorbar

Смотрите также

Функции

Свойства

Похожие темы

Была ли эта тема полезной?