Индексируемое изображение состоит из массива и матрицы палитры. Индексируемое изображение использует прямое отображение пиксельных значений в массиве к значениям палитры. Условно, эта документация использует имя переменной X
, чтобы относиться к массиву и map
, чтобы обратиться к палитре.
Матрица палитры является m-3 массивом класса double
, содержащий значения с плавающей точкой в области значений [0,1]. Каждая строка map
задает красные, зеленые, и синие компоненты одного цвета.
Пиксельные значения в массиве являются прямыми индексами в палитру. Цвет каждого пикселя изображения определяется при помощи соответствующего значения X
как индекс в map
. Отношение между значениями в матрице изображений и палитре зависит от класса матрицы изображений:
Если матрица изображений имеет класс single
или double
, палитра обычно содержит целочисленные значения в области значений [1, p], где p является длиной палитры. Значение 1 точка к первой строке в палитре, значение 2 точки к второй строке, и так далее.
Если матрица изображений имеет класс logical
, uint8
или uint16
, палитра обычно содержит целочисленные значения в области значений [0, p–1]. Значение 0 точек к первой строке в палитре, значение 1 точка к второй строке, и так далее.
Палитра часто хранится индексируемым изображением и автоматически загружается с изображением, когда вы используете функцию imread
. После того, как вы считаете изображение и палитру в рабочую область как отдельные переменные, необходимо отслеживать ассоциацию между изображением и палитрой. Однако вы не ограничиваетесь использованием палитры по умолчанию — можно использовать любую палитру, которую вы выбираете.
Следующая фигура иллюстрирует структуру индексируемого изображения. В фигуре матрица изображений имеет класс double
, таким образом, значение 5 точек к пятой строке палитры.
Индекс пиксельных значений к записям палитры в индексируемом изображении