Можно преобразовать 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.