dither

Преобразуйте изображение, увеличивая видимое разрешение цвета путем диферирования

Описание

X = dither(RGB,map) создает индексированное приближение изображения RGB путем диферирования цветов в палитре map.

X = dither(RGB,map,Qm,Qe) также задает число Qm бит квантования для использования вдоль каждой оси цвета для обратной карты цветов и числа Qe бит квантования для вычисления ошибок цветового пространства.

пример

BW = dither(I) преобразует полутоновое изображение I двоичному (черно-белому) изображению BW при помощи дитеринга.

Примеры

свернуть все

Считайте полутоновое изображение из corn.tif файл в рабочую область MATLAB ®. Полутоновая версия изображения является третьим изображением в файле.

corn_gray = imread('corn.tif',3);

Отобразите полутоновое изображение с помощью imshow.

imshow(corn_gray)

Figure contains an axes. The axes contains an object of type image.

Преобразуйте изображение в двоичное при помощи dither функция.

corn_bw = dither(corn_gray);

Отобразите бинарное изображение. Хотя пиксели в бинарное изображение имеют только значение 0 или 1изображение, по-видимому, имеет оттенки серого из-за диферирования.

imshow(corn_bw)

Figure contains an axes. The axes contains an object of type image.

Входные параметры

свернуть все

Изображение RGB, заданное как массив m -by n -by-3 неотрицательных чисел. Если вы задаете изображение типа данных double, тогда значения должны быть в области значений [0, 1].

Типы данных: single | double | uint8 | uint16

Входная палитра, заданная как матрица c -by-3 со значениями в области значений [0, 1]. Каждая строка map - трехэлементный триплет RGB, который задает красный, зеленый и синий компоненты одного цвета палитры. Палитра имеет максимум 65 536 цветов.

Типы данных: double

Биты квантования вдоль каждой цветовой оси для обратной цветовой карты, заданные как положительное целое число. Если Qe меньше Qm, тогда дитеринг не может быть выполнен и dither функция возвращает неотключенное индексированное изображение в X.

Типы данных: double

Биты квантования для вычисления ошибки цветового пространства, заданные как положительное целое число. Если Qe меньше Qm, тогда дитеринг не может быть выполнен и dither функция возвращает неотключенное индексированное изображение в X.

Типы данных: double

Полутоновое изображение, заданное как m -by - n матрица неотрицательных чисел. Если вы задаете изображение типа данных double, тогда значения должны быть в области значений [0, 1].

Типы данных: single | double | int16 | uint8 | uint16

Выходные аргументы

свернуть все

Индексированное изображение, возвращенное как m -by - n матрица неотрицательных целых чисел. Если длина map меньше или равно 256, тогда выходное изображение имеет класс uint8. В противном случае выходное изображение имеет класс uint16. Значение 0 в массиве выхода X соответствует первому цвету в палитре.

Примечание

Значения в изображении X являются индексами в палитру map и не должен использоваться в математической обработке, такой как операции фильтрации.

Типы данных: uint8 | uint16

Бинарное изображение, возвращенное как m -by n логическая матрица.

Типы данных: logical

Алгоритмы

dither увеличивает видимое цветовое разрешение изображения путем применения алгоритма dither рассеяния ошибок Флойда-Штейнберга [1].

Ссылки

[1] Floyd, R. W., and L. Steinberg, «An Adaptive Algorithm for Spatial Gray Scale», International Symposium Digest of Technical Papers, Society for Information Displays, 1975, p. 36.

[2] Lim, Jae S., Двумерная обработка сигналов и изображений, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 469-476.

Представлено до R2006a