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