Полутоновое изображение — это матрица, элементы яркости которой представлены в виде числовых значений. Если элементы полутонового изображения принадлежат классу uint8 или uintl6, то они представлены целыми числами, соответственно, в интервалах [0.255] и [0,65535]. Если изображение принадлежит классу double, то его пикселы являются вещественными числами с плавающей запятой. По общему соглашению, пикселы изображений double должны лежать в интервале [0,1].
Функции для конвертации цветных изображений:
Имя | Преобразует в | Допустимый класс |
im2uint8 | uint8 | logical,uint8,uintl6,double |
im2uintl6 | uintl6 | logical,uint8,uint16,double |
mat2gray | double (в область [0,1]) | double |
im2double | double | logical,uint8,uintl6,double |
im2bw | logical | uint8,uint16,double |
Функция im2uint8 обнуляет все отрицательные значения входного изображения, ставит число 255 на место величин, больших 1, и умножает остальные значения на 255, после чего округляет результат до ближайшего целого числа.
Преобразование произвольных массивов double в перенормированныемассивы (изображения) double со значениями в интервале [0,1] выполняется с помощью функции mat2gray, имеющий следующий синтаксис:
|
|
g = mat2gray(A, [Amin, Amax]),
где изображение g имеет значения пикселов в интервале от 0 (белый) до 1 (черный). Параметры Amin и Amax имеют следующее действие: все элементы, меньшие Amin, обнуляются, а все элементы, большие Amax, заменяются на 1.
При выполнении команды
>> g = mat2gray(A);
значения Amin и Amax — это настоящие максимум и минимум массива А. Предполагается, что входной массив из класса double. Выходной массив также принадлежит классу double.
Функция im2double преобразует входной массив в класс double. Если входной массив был из класса logical,uint8 или uint 16, то функция im2double преобразует его в класс double с диапазоном [0,1]. Если входной массив был класса double, то функция im2double оставляет его без изменений.
Функция im2bw, имеющая синтаксис g = im2bw(f, Т) порождает двоичное изображение g из полутонового изображения f, используя порог Т. Значения всех элементов f, меньших Т, становятся логическим 0, а все остальные — логическими 1. Значение порога Т должно находиться в интервале [0,1] независимо от класса входного изображения. Выходной массив автоматически делается логическим.