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

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

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

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

RGB2 = im2uint8(RGB1);

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

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте