Операции интерполяционной таблицы

Создание интерполяционной таблицы

Определенные операции двухуровневого изображения могут быть реализованы наиболее легко через интерполяционные таблицы. Интерполяционная таблица является вектор-столбцом, в котором каждый элемент представляет значение, чтобы возвратиться для одной возможной комбинации пикселей в окружении. Чтобы создать интерполяционные таблицы для различных операций, используйте функцию 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.