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

Материал из testwiki
Версия от 07:57, 28 февраля 2024; imported>El-pir (исправление опечаток)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шаблон:Линейные электронные фильтры

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

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

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

g(x,y;λ,θ,ψ,σ,γ)=exp(x'2+γ2y'22σ2)cos(2πxλ+ψ)

где x=xcosθ+ysinθ, y=xsinθ+ycosθ.

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

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

Алгоритм построения одномерного фильтра Габора

Для построения одномерного фильтра Габора применяется формула:
G(x)=exp(x22σ2)cos(2πθx),

где:
  • σ — стандартное отклонение Гаусового ядра, определяющее амплитуду функции;
  • θ — частота колебаний, определяемая как θ=1T, где:
  • T — период функции cos(2πθx).

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

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

Шаблон:Clear

Обработка одномерного сигнала фильтром Габора

Каждая точка входного сигнала F(x) преобразуется в соответствующую точку выходного сигнала F'(x), путём усреднения значений входного сигнала F(t) по области t[xn2,x+n2], с учётом весовых коэффициентов G(i) формулы Габора.

F'(x)=1ni=1nF(xn2+i)G(i)
где:
F(x) — входное значение сигнала в точке x,
F'(x) — выходное значение сигнала в точке x,
G(i) — значение функции Габора, i[0,n].

Шаблон:Clear

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

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

Для построения двумерного фильтра Габора применяется формула:

G(x,y)=exp(12[xϕ2σx2+yϕ2σy2])cos(2πθxϕ)
xϕ=xcos(ϕ)+ysin(ϕ)
yϕ=xsin(ϕ)+ycos(ϕ)
где:
σx,σy — стандартные отклонения гауссова ядра, по осям x и y, определяющие растянутость фильтра по осям,
θ — частотная модуляция фильтра,
ϕ — пространственная направленность фильтра, определяющая его ориентацию относительно главных осей.

Шаблон:Clear

Обработка двумерного изображения фильтром Габора

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


Обработка изображения фильтром Габора достигается путём усреднения значений обрабатываемого изображения по некоторой области в каждой точке. Соответственно, наложение фильтра Габора на изображение имеет вид:
I'(x,y)=1n2i=1nj=1nI(xn2+i,yn2+j)G(i,j)
где:
I(x,y) — интенсивность исходного изображения в точке (x,y),
I'(x,y) — интенсивность нового изображения в точке (x,y),
G(i,j) — значение функции Габора, i[0,n],j[0,n].
Если отбросить синусоидальную составляющую функции в фильтре Габора, он выродится в фильтр Гауссова размытия (Gaussian Blur). Поэтому очевидно, что эти два фильтра имеют практически одинаковый алгоритм применения, различающийся в некоторых деталях.
Из формулы Габора видно, что фильтр зависит от частоты и направления квазипериодической структуры изображения. Поэтому перед применением фильтра необходимо построить частотное и ориентационное поля для текущего изображения. Обычно для упрощения задачи рассчитывается средняя частота изображения, которая считается неизменной в каждой точке.
Для построения поля направлений может применяться несколько способов, наиболее быстрым из которых является дифференциальный метод, позволяющий построить четырёхградационное поле направлений.
Таким образом, имея частоту и 4 направления, предварительно строятся 4 фильтра Габора, по одному на каждое направление. После чего в каждой точке изображения происходит свертка фильтра с изображением по определённой области, что дает выходное значение нового изображения.
Фильтр Габора эффективен при обработке изображений со структурной избыточностью, имеющих квазипериодическую структуру. К ним относятся дактилоскопические изображения, изображения кристаллограмм и интерферрограмм. В живой природе подобный окрас нередко встречается у зебр, различных кошачьих (тигры, рыси, дымчатые коты), птиц (тетерева), рыб (лепоринус полосатый) и прочих представителей флоры и фауны. Шаблон:Clear

Пример реализации

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

function gb = gabor_fn(sigma_x, theta, lambda, psi, gamma)

sz_x = fix(6 * sigma_x);                    % исходя из значения сигмы получили размер ядра
sz_x = sz_x - mod(sz_x,2) + 1;              % если четное - делаем нечетным

sz_y = fix(6 * sigma_x / gamma);            % исходя из значения сигмы и коэф. сжатия получили второй размер ядра
sz_y = sz_y - mod(sz_y,2) + 1;              % если четное - делаем нечетным

[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_x^2))* cos(2 * pi* x_theta./lambda  + psi); % ядро

См. также

Литература