본문 바로가기
정보 보안/지문 & 홍채인식 프로젝트

main 함수 - 지문인식

by tryotto 2020. 2. 5.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
%% 1.Input
 
input = imread('44_2.tif'); %query image
input_size = size(input);
 
input2 = imread('44_4.tif'); %template image
input_size2 = size(input2);
%% 2. Gabor Filter & merge
disp("Gabor Filter")
 
merge = gaborfilter(input);
 
 
merge2 = gaborfilter(input2);
 
%% 3. Binarization
disp("Binarization")
 
level = graythresh(merge);
bin = im2bw(merge,level); 
% bin = imbinarize(merge,level); 
 
level2 = graythresh(merge2);
bin2 = im2bw(merge2,level2);
% bin2 = imbinarize(merge2,level2);
 
%% 4. Thinning
disp("Thinning")
 
thin = ~bwmorph(~bin,'thin',Inf);
 
thin2 = ~bwmorph(~bin2,'thin',Inf);
 
%% 5. Minutiae
disp("Minutiae")
 
[endpoint,bifurpoint] = minutiae_ext(thin);
 
[endpoint2,bifurpoint2] = minutiae_ext(thin2);
 
%% 6. APPLY_ROI
disp("APPLY_ROI")
 
roi_image=MyROI(input);
[out_endpoint,out_bifurpoint] = ROIAPPLY(endpoint,bifurpoint,roi_image);
 
roi_image2=MyROI(input2);
[out_endpoint2,out_bifurpoint2] = ROIAPPLY(endpoint2,bifurpoint2,roi_image2);
 
%% 7. Direction
disp("Direction")
 
[last_endpoint,last_bifurpoint] = my_direction_t(out_endpoint,out_bifurpoint,thin);
Minutiae = [last_endpoint;last_bifurpoint];
 
[last_endpoint2,last_bifurpoint2] = my_direction_t(out_endpoint2,out_bifurpoint2,thin2);
Minutiae2 = [last_endpoint2;last_bifurpoint2];
  
%% 9. MATCHING
disp("MATCHING")
 
score = match(Minutiae,Minutiae2);
 
len1 = size(Minutiae,1);
len2 = size(Minutiae2,1);
 
(score^2)/(len1*len2)
cs