grayslice

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

Синтаксис

X = grayslice(I,N)
X = grayslice(I,thresholds)

Описание

пример

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

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

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

  • uint8, пороговые значения могут лечь в области значений [0 255].

  • int16 или uint16, пороговые значения могут лечь в области значений [0 65535].

  • single или double, пороговые значения могут лечь в области значений [0 1].

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

свернуть все

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

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

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

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

Алгоритмы

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

maxintensity ×.

maxintensity является максимальным допустимым значением интенсивности для данного класса входного полутонового изображения. Если входное полутоновое изображение имеет класс:

  • uint8, значение maxintensity 255.

  • int16 или uint16, значение maxintensity 65535.

  • single или double, значение maxintensity равняется 1.

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

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

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