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

Когда вы изображения на дисплее с помощью 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

Figure contains an axes. The axes contains an object of type image.

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

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

im.CDataMapping = 'scaled';

Figure contains an axes. The axes contains an object of type image.

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

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

imagesc(A);
axis off
colorbar

Figure contains an axes. The axes contains an object of type image.

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

colormap(gray);

Figure contains an axes. The axes contains an object of type image.

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

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

Figure contains an axes. The axes contains an object of type image.

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

Функции

Свойства

Похожие темы