Когда вы изображения на дисплее с помощью функции 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), которые содержат их собственную палитру. Однако, если ваше изображение представляет измерения некоторой физической единицы измерения (например, метры или степени) затем устанавливает свойство 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