Когда вы отображаете изображения, используя 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';
The '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