grayslice

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

Описание

пример

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

пример

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

Примеры

свернуть все

Чтение полутонового изображения в рабочую область.

I = imread('snowflakes.png');

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

X = grayslice(I,16);

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

imshow(I)

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

figure
imshow(X,jet(16))

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

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

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

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

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

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)))

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

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

свернуть все

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

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

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

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

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

Тип данных изображенийОбласть значений допустимых пороговых значений
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 -й индекс в X состоит из полутоновых пикселей в области значений max_intensity×[k1N,kN)

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

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

Тип данных изображенийmax_intensity
uint8255
int16 или uint1665535
single или double1

Примечание

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

См. также

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