grayslice

Преобразуйте полутоновое изображение в индексируемое изображение с помощью многоуровневой пороговой обработки

Описание

пример

X = grayslice(I,N) преобразует полутоновое изображение в индексируемое изображение при помощи многоуровневого подхода пороговой обработки. Функция автоматически вычисляет пороговые значения на основе N. Чтобы узнать больше о пороговом вычислении, см. Алгоритмы.

пример

X = grayslice(I,thresholds) возвращает индексируемое изображение многоуровневой пороговой обработкой входного изображения с помощью заданного набора порогов.

Примеры

свернуть все

Считайте полутоновое изображение в рабочую область.

I = imread('snowflakes.png');

Порог изображение интенсивности, возвращая индексируемое изображение.

X = grayslice(I,16);

Отобразите оригинальное изображение и индексируемое изображение, с помощью одной из стандартных палитр.

imshow(I)

figure
imshow(X,jet(16))

Считайте полутоновое изображение в рабочую область. Отобразите изображение.

I = imread('coins.png');
imshow(I)

Задайте пороговые значения для многоуровневой пороговой обработки.

thresholds = [45 65 84 108 134 157 174 189 206 228];

Преобразуйте входное полутоновое изображение в индексируемое изображение.

X = grayslice(I,thresholds);

Отобразите индексируемое изображение. Установите палитру индексируемого изображения к jet. Длина палитры, m, максимальное значение интенсивности в индексируемом изображении.

m = double(max(X(:)));

figure
imshow(X,colormap(jet(m)))

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

свернуть все

Введите полутоновое изображение в виде m-by-n числовая матрица.

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

Количество пороговых значений в виде положительной скалярной величины. Значение представляет общее количество порогов, которые будут использоваться для многоуровневой пороговой обработки.

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

Набор порогов в виде числового вектора. Количество пороговых значений, которые будут использоваться для многоуровневой пороговой обработки, равно length(thresholds).

Тип данных imageОбласть значений допустимых пороговых значений
uint8[0, 255]
int16 или uint16[0, 65535]
single или double[0, 1]

Примечание

Перед пороговой обработкой изображение типа данных int16, grayslice функция преобразует изображение в uint16 путем добавления 32,768 к каждому пикселю. Рассмотрите это аддитивное смещение при определении порогов для входных изображений типа данных int16.

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

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

свернуть все

Выведите индексированное изображение, возвращенное как m-by-n матрица одного размера с входным полутоновым изображением. Тип данных X зависит от количества пороговых значений, используемых для многоуровневой пороговой обработки.

  • Если количество пороговых значений меньше 256, то X имеет тип данных uint8. В этом случае, область значений значений интенсивности в X любой [0, N- 1] или [0, length(thresholds)].

  • Если количество пороговых значений больше или равно 256, то X имеет тип данных double. В этом случае, область значений значений интенсивности в X любой [1, N] или [1, length(thresholds)+1].

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

Советы

  • Можно просмотреть пороговое изображение с помощью imshow(X,map) с картой цветов соответствующей длины.

Алгоритмы

Функция выполняет многоуровневую пороговую обработку входного полутонового изображения и возвращает индексируемое изображение как выход. Если вы задаете количество порогов N, затем grayslice пиксели присвоений к N индексы согласно этим порогам.

  • Первый индекс в X состоит из полутоновых пикселей в области значений max_intensity×[0,1N)

  • k-th индексирует в X состоит из полутоновых пикселей в области значений max_intensity×[k1N,kN)

  • Последний индекс в X состоит из полутоновых пикселей в области значений max_intensity×[N1N,1].

max_intensity зависит от типа данных входного изображения.

Тип данных imagemax_intensity
uint8255
int16 или uint1665535
single или double1

Примечание

Перед пороговой обработкой изображение типа данных int16, grayslice функция преобразует изображение в uint16 путем добавления 32,768 к каждому пикселю.

Смотрите также

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