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

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

Некоторые операции с бинарным изображением могут быть реализованы наиболее легко через интерполяционные таблицы. Интерполяционная таблица является вектором-столбцом, в которой каждый элемент представляет значение для возврата для одной возможной комбинации пикселей в районе. Чтобы создать интерполяционные таблицы для различных операций, используйте makelut функция. makelut создает интерполяционные таблицы для кварталов 2 на 2 и 3 на 3. Следующие рисунки иллюстрируют эти типы кварталов. Каждый пиксель окрестности обозначается x, а центральный пиксель является пикселем с кругом.

Для района 2 на 2 существует 16 возможных сочетания пикселей в районе. Поэтому интерполяционная таблица для этой операции является вектором с 16 элементами. Для окрестности 3 на 3 существует 512 сочетания, поэтому интерполяционная таблица является вектором с 512 элементами.

Примечание

makelut и applylut поддержка только кварталов 2 на 2 и 3 на 3. Интерполяционные таблицы размером более 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 и 0. Каждое значение является выходом из функции для одной из 512 возможных сочетаний.

Затем выполните операцию с помощью applylut.

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

Изображение до и после применения операции интерполяционной таблицы

Для получения информации о том, как applylut преобразует комбинации пикселей в изображении в значения в интерполяционной таблице, см. страницу с описанием для applylut.

Для просмотра документации необходимо авторизоваться на сайте