exponenta event banner

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-на-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-на-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×[k−1N, кН)

  • Последний индекс в X состоит из пикселов оттенков серого в диапазоне max_intensity×[N−1N, 1].

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

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

Примечание

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

См. также

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