Определенные операции двухуровневого изображения могут быть реализованы наиболее легко через интерполяционные таблицы. Интерполяционная таблица является вектор-столбцом, в котором каждый элемент представляет значение, чтобы возвратиться для одной возможной комбинации пикселей в окружении. Чтобы создать интерполяционные таблицы для различных операций, используйте функцию makelut
. makelut
создает интерполяционные таблицы для и 3х3 окружений 2 на 2. Следующая фигура иллюстрирует эти типы окружений. Каждый пиксель окружения обозначается x, и центральный пиксель является тем с кругом.
Для окружения 2 на 2 существует 16 возможных перестановок пикселей в окружении. Поэтому интерполяционная таблица для этой операции является вектором с 16 элементами. Для 3х3 окружения существует 512 перестановок, таким образом, интерполяционная таблица является вектором с 512 элементами.
makelut
и applylut
поддерживают только и 3х3 окружения 2 на 2. Интерполяционные таблицы, больше, чем 3х3 окружения, не практичны. Например, интерполяционная таблица для окружения 4 на 4 имела бы 65 536 записей.
Если вы создаете интерполяционную таблицу, можно использовать ее, чтобы выполнить желаемую операцию при помощи функции applylut
.
Пример ниже иллюстрирует операции интерполяционной таблицы использования, чтобы изменить изображение, содержащее текст. Пример создает анонимную функцию, которая возвращается 1, если три или больше пикселя в 3х3 окружении равняются 1; в противном случае это возвращает 0
. Пример затем вызывает makelut
, передающий в этой функции в качестве первого аргумента и использующий второй аргумент, чтобы задать 3х3 интерполяционную таблицу.
f = @(x) sum(x(:)) >= 3; lut = makelut(f,3);
lut
возвращен как вектор с 512 элементами 1's и 0. Каждым значением является вывод от функции для одной из 512 возможных перестановок.
Вы затем выполняете операцию с помощью applylut
.
BW1 = imread('text.png'); BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2)
Отобразите до и после применения операции интерполяционной таблицы
Для получения информации о том, как applylut
сопоставляет пиксельные комбинации в изображении к записям в интерполяционной таблице, смотрите страницу с описанием для applylut
.