Фильтр Габора: различия между версиями

423 байта добавлено ,  4 года назад
→‎Обзор: исправлен код, реализующий фильтр в Matlab. Теперь он соответствует аналитической формуле фильтре
м (Удаление принудительных пробелов в формулах по ВП:РДБ.)
(→‎Обзор: исправлен код, реализующий фильтр в Matlab. Теперь он соответствует аналитической формуле фильтре)
Вот пример реализации фильтра Габора для пакета [[Matlab]]:
<source lang="matlab">
function gb = gabor_fn(sigma_x, sigma_y, theta, lambda, psi, gamma)
 
sz_x = fix(6 * sigma_x); % исходя из значения сигмы получили размер ядра
sz_x = fix(6 * sigma_x);
sz_x = sz_x - mod(sz_x,2) + 1; % если четное - делаем нечетным
if mod(sz_x,2)==0, sz_x = sz_x + 1; end
 
sz_y = fix(6 * sigma_x / gamma); % исходя из значения сигмы и коэф. сжатия получили второй размер ядра
sz_y = fix(6 * sigma_y);
if mod(sz_y, 2)==0, sz_y =- mod(sz_y,2) + 1; end % если четное - делаем нечетным
 
[x y] = meshgrid(-fix(sz_x/2):fix(sz_x/2), fix(-sz_y/2):fix(sz_y/2)); % задали облать определения
 
% Поворот
y_theta = -x*sin(theta) + y*cos(theta);
 
gb = exp(-.5 * (x_theta.^2/sigma_x^2 + gamma^2 * y_theta.^2/sigma_ysigma_x^2))* cos(2 * pi/lambda * x_theta./lambda + psi); % ядро
</source>
Фильтры Габора напрямую связаны с [[вейвлет]]ами Габора, так как они могут быть сконструированы путём ряда сжатий и вращений. Пространство Габора (свёртка фильтра с сигналом) часто применяется в различных приложениях [[обработка изображений|обработки изображений]], в частности, для распознавания радужной оболочки в биометрических системах безопасности и в
Анонимный участник