exponenta event banner

applylut

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

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

Создайте 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 contains an axes. The axes contains an object of type image.

 figure, imshow(BW2);

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

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

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

свернуть все

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

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

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

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

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

Алгоритмы

свернуть все

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

Окрестности 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