Фильтр Габора

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Обзор[править | править вики-текст]

Пример двумерного фильтра Габора

Фильтр Габоралинейный электронный фильтр, импульсная переходная характеристика которого определяется в виде гармонической функции, помноженной на гауссиан. При цифровой обработке изображений этот фильтр применяется для распознавания границ объектов.

Из-за свойства соответствия свёртки в частотной области умножению во временной области, преобразование Фурье импульсной передаточной характеристики фильтра Габора является свёрткой преобразований Фурье гармонической функции и гауссиана.

g(x,y;\lambda,\theta,\psi,\sigma,\gamma)=\exp(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2})\cos(2\pi\frac{x'}{\lambda}+\psi)

где

x' = x \cos\theta + y \sin\theta\,

и

y' = -x \sin\theta + y \cos\theta\,

В этом уравнении \lambda представляет собой длину волны множителя-косинуса, \theta определяет ориентацию нормали параллельных полос функции Габора в градусах, \psi — сдвиг фаз в градусах и \gamma — коэффициент сжатия, характеризующий эллиптичность функции Габора.

Вот пример реализации фильтра Габора для пакета Matlab:

function gb = gabor_fn(sigma_x, sigma_y, theta, lambda, psi, gamma)
 
sz_x = fix(6 * sigma_x);
if mod(sz_x,2)==0, sz_x = sz_x + 1; end
 
 
sz_y = fix(6 * sigma_y);
if mod(sz_y, 2)==0, sz_y = sz_y + 1; end
 
[x y] = meshgrid(-fix(sz_x/2):fix(sz_x/2), fix(-sz_y/2):fix(sz_y/2));
 
% Поворот
x_theta = x*cos(theta) + y*sin(theta);
y_theta = -x*sin(theta) + y*cos(theta);
 
gb = exp(-.5 * (x_theta^2/sigma_x^2 + gamma^2 * y_theta.^2/sigma_y^2))* cos(2 * pi/lambda * x_theta + psi);

Фильтры Габора напрямую связаны с вейвлетами Габора, так как они могут быть сконструированы путём ряда сжатий и вращений. Пространство Габора (свёртка фильтра с сигналом) часто применяется в различных приложениях обработки изображений, в частности, для распознавания радужной оболочки в биометрических системах безопасности и в автоматизированных система контроля доступа на основании распознавания отпечатков пальцев.

Алгоритм построения одномерного фильтра Габора[править | править вики-текст]

Косинус, экспонента и их композиция в функцию Габора

Для построения одномерного фильтра Габора применяется формула:
G(x)=\exp\left ( -\frac{x^2}{2\sigma^2} \right )\cos(2\pi\theta x), где:

  • \sigma — стандартное отклонение Гаусового ядра, определяющее амплитуду функции;
  • \theta — частота колебаний, определяемая как \theta=\frac{1}{T}, где:
  • T — период функции \cos(2\pi\theta x).
Зависимость функции G(x) от \sigma

Чем больше \sigma, тем более пологий вид примет функция. Чем меньше \sigma, тем более острый пик получится в результате построения графика функции.

Зависимость функции G(x) от \theta

Приведённая выше функция экспоненты обладает свойствами нормального распределения случайной величины. Согласно правилу трёх сигм, практически все значения экспоненты лежат в интервале [ -3 \sigma; 3 \sigma ]. Для анализа сигналов, значения функции рассчитываются в указанных пределах.


Обработка одномерного сигнала фильтром Габора[править | править вики-текст]

Каждая точка входного сигнала F(x) преобразуется в соответствующую точку выходного сигнала F^'(x), путём усреднения значений входного сигнала F(t) по области t\in[x-\frac{n}{2}, x+\frac{n}{2}], с учетом весовых коэффициентов G(i) формулы Габора.
F^'(x) = \frac{1}{n}\sum_{i=1}^n F(x-\frac{n}{2}+i)\cdot G(i)
где:
F(x) - входное значение сигнала в точке x,
F^'(x) - выходное значение сигнала в точке x,
G(i) - значение функции Габора, i\in[0, n].

Алгоритм построения двумерного фильтра Габора[править | править вики-текст]

Двумерная функция Габора

Для построения двумерного фильтра Габора применяется формула:
G(x, y)=\exp\left ( -\frac{1}{2}\left [\frac{x_\phi^2}{\sigma_x^2} +\frac{y_\phi^2}{\sigma_y^2} \right ] \right )\cos(2\pi\theta x_\phi)
x_\phi = x\cos(\phi) + y\sin(\phi)
y_\phi = -x\sin(\phi) + y\cos(\phi)

где:
\sigma_x, \sigma_y - стандартные отклонения гауссова ядра, по осям x и y, определяющие растянутость фильтра по осям,
\theta - частотная модуляция фильтра,
\phi - пространственная направленность фильтра, определяющая его ориентацию относительно главных осей.

Обработка двумерного изображения фильтром Габора[править | править вики-текст]

Исходное дактилоскопическое изображение
Дактилоскопическое изображение, обработанное фильтром Габора


Обработка изображения фильтром Габора достигается путем усреднения значений обрабатываемого изображения по некоторой области в каждой точке. Соответственно, наложение фильтра Габора на изображение имеет вид:
I^'(x, y) = \frac{1}{n^2}\sum_{i=1}^n\sum_{j=1}^n I(x-\frac{n}{2}+i, y-\frac{n}{2}+j)\cdot G(i, j)
где:
I(x, y) - интенсивность исходного изображения в точке (x, y),
I^'(x, y) - интенсивность нового изображения в точке (x, y),
G(i, j) - значение функции Габора, i\in[0, n], j\in[0, n].
Если отбросить синусоидальную составляющую функции в фильтре Габора, он выродится в фильтр Гауссова размытия (Gaussian Blur). Поэтому очевидно, что эти два фильтра имеют практически одинаковый алгоритм применения, различающийся в некоторых деталях.
Из формулы Габора видно, что фильтр зависит от частоты и направления квазипериодической структуры изображения. Поэтому перед применением фильтра, необходимо построить частотное и ориентационное поля для текущего изображения. Обычно, для упрощения задачи рассчитывается средняя частота изображения, которая считается неизменной в каждой точке.
Для построения поля направлений может применяться несколько способов, наиболее быстрым из которых, является дифференциальный метод, позволяющий построить четырехградационное поле направлений.
Таким образом, имея частоту и 4 направления, предварительно строятся 4 фильтра Габора по одному на каждое направление. После чего в каждой точке изображения происходит свертка фильтра с изображением по определенной области, что дает выходное значение нового изображения.
Фильтр Габора эффективен при обработке изображений со структурной избыточностью, имеющих квазипериодическую структуру. К ним относятся дактилоскопические изображения, изображения кристаллограмм и интерферрограмм. В живой природе подобный окрас нередко встречается у зебр, различных кошачьих (тигры, рыси, дымчатые коты), птиц (тетерева), рыб (лепоринус полосатый) и прочих представителей флоры и фауны.

См. также[править | править вики-текст]

Литература[править | править вики-текст]

  • Сойфер В.А. Методы компьютерной обработки изображений. — Физматлит, 2003. — С. 459.
  • Храмов, А. Г. Методы восстановления интерферрограмм на ЭВМ. — КуАИ, 1988. — С. 88.