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

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

The '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.

См. также

Функции

Свойства

Похожие темы