applylut

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

applylut не рекомендуется. Используйте bwlookup вместо этого.

Синтаксис

A = applylut(BW,lut)

Описание

пример

A = applylut(BW,lut) выполняет или 3х3 операцию окружения 2 на 2 на двухуровневом изображении BW при помощи интерполяционной таблицы, lut. Интерполяционная таблица состоит из выходных значений для всех возможных или 3х3 окружений 2 на 2.

Примеры

свернуть все

Создайте LUT.

 lutfun = @(x)(sum(x(:))==4);
 lut    = makelut(lutfun,2);

Считайте изображение в рабочую область и затем примените LUT к изображению. Выходным пикселем является on, только если всеми четырьмя из пикселей окружения входного пикселя является on.

 BW1    = imread('text.png');
 BW2    = applylut(BW1,lut);

Покажите оригинальное изображение и разрушенное изображение.

 figure, imshow(BW1);

 figure, imshow(BW2);

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

свернуть все

Введите изображение, заданное как 2D двухуровневое изображение. Для числового входа любые ненулевые пиксели считаются 1 (true).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Интерполяционная таблица значений выходного пикселя, заданных как 16-или вектор с 512 элементами, как возвращено makelut.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

свернуть все

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

  • Если всеми элементами lut является 0 или 1, то A имеет тип данных logical.

  • Если все элементы lut являются целыми числами между 0 и 255, то A имеет тип данных uint8.

  • Для всех других случаев A имеет тип данных double.

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

Алгоритмы

свернуть все

applylut выполняет операцию окружения на двухуровневом изображении путем создания матрицы индексов в lut, и затем заменяющий индексы на фактические значения в lut. Определенный используемый алгоритм зависит от того, используете ли вы или 3х3 окружения 2 на 2.

Окружения 2 на 2

Для окружений 2 на 2 length(lut) равняется 16. Существует четыре пикселя в каждом окружении и два возможных состояния для каждого пикселя, таким образом, общее количество перестановок равняется 24 = 16.

Чтобы произвести матрицу индексов, applylut применяет операцию свертки к двухуровневому изображению BW с этой матрицей.

8     2
4     1

Получившаяся свертка содержит целочисленные значения в области значений [0, 15]. applylut использует центральную часть свертки, одного размера как BW, и добавляет 1 к каждому значению, чтобы переключить область значений к [1, 16]. Функция затем создает A, заменяя значения в ячейках индексной матрицы со значениями в lut, на который указывают индексы.

3х3 Окружения

Для 3х3 окружений length(lut) 512. Существует девять пикселей в каждом окружении и два возможных состояния для каждого пикселя, таким образом, общее количество перестановок равняется 29 = 512.

Чтобы произвести матрицу индексов, applylut применяет операцию свертки к двухуровневому изображению BW с этой матрицей.

256    32     4
128    16     2
 64     8     1

Получившаяся свертка содержит целочисленные значения в области значений [0, 511]. applylut использует центральную часть свертки, одного размера как BW, и добавляет 1 к каждому значению, чтобы переключить область значений к [1, 512]. Это затем создает A, заменяя значения в ячейках индексной матрицы со значениями в lut, на который указывают индексы.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2012b

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

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