Anda di halaman 1dari 9

Digital Image Processing

Project: Fingerprint Minutiae Extraction To: Sir Manzar Abbas

By:
NazishYaqoob nazishminhass@yahoo.com Aisha Wasif Ash_virgo0010@yahoo.com

Fatima Jinnah Women University, Rawalpindi

Fingerprint Minutiae Extraction


Fingerprint recognition is an automated method of verifying a match between two human fingerprints. Fingerprints are one of the many forms of biometrics that are widely used in various security systems Such as smart homes, airport identity verification, and border checkpoints. However, before verification can be done between two sets of fingerprints, the most important step before that is to extract relevant information from a fingerprint image that can used to make comparisons. The important features that we are interested in are called minutiae, which literally mean small details. All our fingerprints have ridges, or fine lines that one can observe. Ridge patterns can be discontinuous in various ways. For example, a ridge can suddenly come to an end (termination), or can divide/split into two ridges (bifurcation). Although several other types of minutiae can be considered (point, spur, crossover, lake), the FBI minutiae-coordinate model from 1982 considers only terminations and bifurcations for person identification using fingerprints. In practice, an ambiguity exists between termination and bifurcation minutiae, depending on the finger pressure against the surface where the fingerprint is left terminations can appear as bifurcations, and vice versa.

Code:
%Program for Fingerprint Minutiae Extraction %Program Description %This program extracts the ridges and bifurcation from a fingerprint image %histogram I = imread('4.tif'); J = histeq(I); imshow(I) figure, imshow(J);title('enhanced image'); %figure; imhist(I,64) %Read Input Image binary_image=im2bw(J); %Small region is taken to show output clear %binary_image = binary_image(120:200,20:250); figure;imshow(binary_image);title('Binary image'); %Thinning thin_image=~bwmorph(binary_image,'thin',Inf); figure;imshow(thin_image);title('Thinned Image'); %Minutiae extraction s=size(thin_image); N=3;%window size n=(N-1)/2; r=s(1)+2*n; c=s(2)+2*n; double temp(r,c); temp=zeros(r,c);bifurcation=zeros(r,c);ridge=zeros(r,c); temp((n+1):(end-n),(n+1):(end-n))=thin_image(:,:);

outImg=zeros(r,c,3);%For Display outImg(:,:,1) = temp .* 255; outImg(:,:,2) = temp .* 255; outImg(:,:,3) = temp .* 255; for x=(n+1+10):(s(1)+n-10) for y=(n+1+10):(s(2)+n-10) e=1; for k=x-n:x+n f=1; for l=y-n:y+n mat(e,f)=temp(k,l); f=f+1; end e=e+1; end; if(mat(2,2)==0) ridge(x,y)=sum(sum(~mat)); bifurcation(x,y)=sum(sum(~mat)); end end; end; % RIDGE END FINDING [ridge_x ridge_y]=find(ridge==2); len=length(ridge_x); %For Display for i=1:len outImg((ridge_x(i)-3):(ridge_x(i)+3),(ridge_y(i)-3),2:3)=0; outImg((ridge_x(i)-3):(ridge_x(i)+3),(ridge_y(i)+3),2:3)=0; outImg((ridge_x(i)-3),(ridge_y(i)-3):(ridge_y(i)+3),2:3)=0; outImg((ridge_x(i)+3),(ridge_y(i)-3):(ridge_y(i)+3),2:3)=0; outImg((ridge_x(i)-3):(ridge_x(i)+3),(ridge_y(i)-3),1)=255; outImg((ridge_x(i)-3):(ridge_x(i)+3),(ridge_y(i)+3),1)=255; outImg((ridge_x(i)-3),(ridge_y(i)-3):(ridge_y(i)+3),1)=255; outImg((ridge_x(i)+3),(ridge_y(i)-3):(ridge_y(i)+3),1)=255; end %BIFURCATION FINDING [bifurcation_x bifurcation_y]=find(bifurcation==4); len=length(bifurcation_x); %For Display for i=1:len outImg((bifurcation_x(i)-3):(bifurcation_x(i)+3),(bifurcation_y(i)3),1:2)=0; outImg((bifurcation_x(i)3):(bifurcation_x(i)+3),(bifurcation_y(i)+3),1:2)=0; outImg((bifurcation_x(i)-3),(bifurcation_y(i)3):(bifurcation_y(i)+3),1:2)=0; outImg((bifurcation_x(i)+3),(bifurcation_y(i)3):(bifurcation_y(i)+3),1:2)=0; outImg((bifurcation_x(i)-3):(bifurcation_x(i)+3),(bifurcation_y(i)3),3)=255; outImg((bifurcation_x(i)3):(bifurcation_x(i)+3),(bifurcation_y(i)+3),3)=255;

outImg((bifurcation_x(i)-3),(bifurcation_y(i)3):(bifurcation_y(i)+3),3)=255; outImg((bifurcation_x(i)+3),(bifurcation_y(i)3):(bifurcation_y(i)+3),3)=255; end figure;imshow(outImg);title('Minutiae');

Output:
Input image:

Anda mungkin juga menyukai