grayslice

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

I = imread('snowflakes.png');

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

X = grayslice(I,16);

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

imshow(I)

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

figure
imshow(X,jet(16))

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object contains an object of type image.

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

свернуть все

Введите полутоновое изображение в виде 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