exponenta event banner

Преобразование данных изображения между классами

Обзор преобразований классов изображений

Можно преобразовать uint8 и uint16 данные изображения для double использование MATLAB ®double функция. Однако преобразование между классами изменяет способ интерпретации данных изображения в MATLAB и на панели инструментов. Если необходимо правильно интерпретировать результирующий массив как данные изображения, при преобразовании необходимо изменить масштаб или смещение данных.

Для упрощения преобразования классов используйте одну из следующих функций: im2uint8, im2uint16, im2int16, im2single, или im2double. Эти функции автоматически обрабатывают масштабирование и смещение исходных данных любого класса изображений. Например, эта команда преобразует изображение RGB с двойной точностью с данными в диапазоне [0,1] в uint8 Изображение RGB с данными в диапазоне [0,255].

RGB2 = im2uint8(RGB1);

Потеря информации в преобразованиях

При преобразовании в класс, использующий меньшее количество битов для представления чисел, часть информации в изображении, как правило, теряется. Например, uint16 изображение в оттенках серого способно хранить до 65 536 различных оттенков серого, но uint8 изображение в оттенках серого может хранить только 256 различных оттенков серого. При преобразовании uint16 изображение в оттенках серого в uint8 изображение в градациях серого, im2uint8 квантует оттенки серого в исходном изображении. Другими словами, все значения от 0 до 127 в исходном изображении становятся 0 в uint8 изображение, значения от 128 до 385 все становятся 1 и так далее.

Преобразование индексированных изображений

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

Например, uint16 или double индексированное изображение с 300 цветами не может быть преобразовано в uint8, потому что uint8 массивы имеют только 256 различных значений. Если требуется выполнить это преобразование, необходимо сначала уменьшить количество цветов в изображении с помощью imapprox функция. Эта функция выполняет квантование цветов в цветовой карте, чтобы уменьшить количество различных цветов в изображении. Дополнительные сведения см. в разделе Уменьшение цветов индексированного изображения с помощью imapprox.