Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОЙ Диплом 2.doc
Скачиваний:
69
Добавлен:
09.02.2015
Размер:
3.41 Mб
Скачать
    1. Применение фильтра Габора

Первым шагом на этом этапе является генерация фильтра Габора. Ниже приведен код функции, реализующий генерацию фильтра Габора по заданным углом theta.

function gb=gabor_fn(theta)

% bw = bandwidth, (1)

% gamma = aspect ratio, (0.5)

% psi = phase shift, (0)

% lambda= wave length, (>=2)

% theta = angle in rad, [0 pi)

bw = 0.7;

gamma = 1;

psi = 1;

lambda = 8;

sigma = lambda/pi*sqrt(log(2)/2)*(2^bw+1)/(2^bw-1);

sigma_x = sigma;

sigma_y = sigma/gamma;

sz=fix(8*max(sigma_y,sigma_x));

if mod(sz,2)==0, sz=sz+1;end

[x y]=meshgrid(-fix(sz/2):fix(sz/2),fix(sz/2):-1:fix(-sz/2));

% Rotation

x_theta=x*cos(theta)+y*sin(theta);

y_theta=-x*sin(theta)+y*cos(theta);

gb=exp(-0.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

end

Рисунок 30. Примеры сгенерированных фильтров Габора.

Следующим шагом является наложение фильтра Габора на изображение с учетом расположения минуций и значений углов. Функция наложения зависит от входного изображения img и поля направлений orient.

Ниже приведен код программы, реализующий данную функциию:

function [ img ] = gabbor_app( img, orient)

win_size = 3;

for a = (fix(win_size/2)+1:win_size:size(img,1)-fix(win_size/2)-10)

for b = (fix(win_size/2)+1:win_size:size(img,2)-fix(win_size/2)-10)

gab = gabor_fun(orient(ceil(a/9),ceil(b/9)));

%gab = gabor_fun(pi/4);

M = zeros(win_size, win_size);

for c = (1:win_size)

for d =(1:win_size)

M(c,d) = img(a-fix(win_size/2+1)+c, b-fix(win_size/2+1)+d);

end

end

M = imfilter(M, gab);

for c = (1:win_size)

for d =(1:win_size)

img(a-fix(win_size/2+1)+c, b-fix(win_size/2+1)+d) = M(c,d);

end

end

end

end

end

Обработка изображения фильтром Габора проходит в несколько итераций. При этом происходит постепенное наращивание папиллярных линий ОП.

Рисунок 31. Процесс наращивания папиллярных линий

    1. Обрезание изображения

После построения шаблона линий, он обрезается по выбранной форме отпечатка.

Рисунок 32. Пример сгенерированного ОП.

    1. Выводы

В данной части была сконструирована структура ПО, а также сформулированы требования к каждой подсистеме. Был произведен выбор языка программирования с учетом требований к разрабатываемому ПО. Также была проведена реализация программного обеспечения, выполняющего генерацию искусственных отпечатков пальцев, основанную на фильтре Габора. Приведены результаты работы отдельных частей алгоритма и конечный результат работы программы – образ сгенерированного отпечатка пальца.

  1. Организационно-экономическая часть

    1. Введение

Разработка программного обеспечения предполагает необходимость координации значительного количества весьма разноплановых работ, в которых принимают участие специалисты различного профиля и квалификации. Необходимость обеспечения эффективности разработки требует формирования единого плана, предусматривающего окончание всего комплекса работ и отдельных его составляющих в заданные сроки и при ограниченных издержках.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]