report fingerprint

63
FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB July,2013 (Month and year of submission) Project Report on “FiNger-Print Recognition By MiNutiae extractiON usiNg MatLab” SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE AWARD OF THE DEGREE OF BACHELOR OF TECHNOLOGY IN ELECTRICAL AND ELECTRONICS ENGINEERING ELECTRONICS AND TELECOMMUNICATION ENGINEERING Submitted by:- SHASHANK KUMAR (EEE) SANDEEP SAURAV (ET) AWIK (ET) PARIJAT PRASUN (EEE) SOURAV KUMAR (ET) VIKRANT NEGI (ET) SUPERVISED BY Mr ESHAAN VERMA

Upload: anurag0052

Post on 21-Jan-2016

307 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Project Report

on

“FiNger-Print Recognition By

MiNutiae extractiON usiNg MatLab”

SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE AWARD

OF

THE DEGREE OF

BACHELOR OF TECHNOLOGY

IN

ELECTRICAL AND ELECTRONICS ENGINEERING

ELECTRONICS AND TELECOMMUNICATION ENGINEERING

Submitted by:-

SHASHANK KUMAR (EEE)

SANDEEP SAURAV (ET)

AWIK (ET)

PARIJAT PRASUN (EEE)

SOURAV KUMAR (ET)

VIKRANT NEGI (ET)

SUPERVISED BY

Mr ESHAAN VERMA

Page 2: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

CONTENTS

Cover Page……………………………………………………………………… 1

Student’s Declaration………………………………………………………….. 2

Certificate………………………………………………………………………. 3

Acknowledgement……………………………………………………………... 4

Abstract………………………………………………………………………… 5

Introduction to MATLAB...…………………………………………………….. 9

Introduction………………………………………………... 9

History………………………………………………………. 10

Components………………………………………………… 10

Graphics…………………………………………………….. 12

Interfacing………………………………………………….. 13

License……………………………………………………… 13

Alternatives………………………………………………… 14

File Extension………………………………………………. 14

Working Environments……………………………………. 15

Command Window…………………….. 16

Editor Window…………………………. 17

Guide……………………………………. 18

Developmental Tools……………………………………….. 19

Image Processing………………………………………………………………. 20

Image Processing…………………………………………… 20

Purpose………………………………… 20

Fundamentals…………………………. . 21

GUI – Graphical User Interface…………………………………………………. 25

UI Control Elements………………………………………..... 25

Basics………………………………………………………... 26

Examples……………………………………………………. 26

Introduction to Project………………………………………………….... 33

Page 3: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Bio-metric

verification…………………………………………………. 33

Minutiae………………………………………………….. 34

The Code ……………………………………………………………………………...

42

Conclusion……………………………………………………………………….. 61

Reference………………………………………………………………………… 62

Page 4: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

STUDENT’S DECLARATION

We hereby declare that the work, which is being represented in this thesis, titled

“Finger-Print Recognition by Minutiae Extraction using MatLab” in the

fulfilment of the requirement of the degree of Bachelor of Technology in

Electrical and Electronics Engineering, and Electronics and Telecommunication

Engineering, submitted to “CETPA INFOTECH PRIVATE LIMITED” is an authentic

record of our own work carried out under the supervision of Mr. Eshaan Verma.

The work contained in this thesis has not been submitted to any other Institute

for the award of any other degree.

Shashank Kumar (EEE)

Sandeep Saurav (ET)

Awik (ET)

Parijat Prasun (EEE)

Sourav Kumar (ET)

Vikrant Negi(ET)

This is to certify that the above statement made by the student(s) is correct to the best of my

knowledge.

Signature of Supervisor(s)

Page 5: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Date: Name & Designation

Date: Name & Designation

Page 6: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

ACKNOWLEDGEMENT

For success, it requires diligence, perseverance, inspiration, motivation and

innovation. Words cannot express our guidance for all those people who

helped us directly or indirectly in our endeavour. Success in any endeavour

calls for cooperation and guidance from seniors and colleagues. This was

amply brought out to us while working with this project.

We would like to place on record my deep sense of gratitude to Mr Eshaan

Verma of CetpaInfotech Private Limited, Noida , India for his generous

guidance, help and useful suggestions.

We express our sincere gratitude to him for his stimulating guidance,

continuous encouragement and supervision throughout the course of present

work.

We are extremely thankful to CETPA INFOTECH PRIVATE LIMITED for

providing us infrastructural facilities to work in, without which this work

would not have been possible.

We would like to thank all the lab assistants who were ready to extend

their helping hands at all times. This acknowledgement would really be

not complete without thanking our colleagues for their lively discussions

and feedback at various stages of the project.

Page 7: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

ABSTRACT

Human fingerprints are rich in details called minutiae, which can be used as

identification marks for fingerprint verification. The goal of this project is to

develop a complete system for fingerprint verification through extracting

and matching minutiae. To achieve good minutiae extraction in fingerprints

with varying quality, preprocessing in form of image enhancement and

binarization is first applied on fingerprints before they are evaluated. Many

methods have been combined to build a minutia extractor and a minutia

matcher. Minutia-marking with false minutiae removal methods are used in

the work. An alignment-based elastic matching algorithm has been

developed for minutia matching. This algorithm is capable of finding the

correspondences between input minutia pattern and the stored template

minutia pattern without resorting to exhaustive search. Performance of the

developed system is then evaluated on a database with fingerprints from

different people.

Page 8: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

INTRODUCTION TO MATLAB

INTRODUCTION

MATLAB (matrix laboratory) is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, and Fortran.

Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the MuPAD symbolic engine, allowing access to symbolic computing capabilities. An additional package, Simulink, adds graphical multi-domain simulation and Model-Based Design for dynamic and embedded systems.

Page 9: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

History

Cleve Moler, the chairman of the computer-science department at the University of New Mexico, started developing MATLAB in the late 1970s. He designed it to give his students access to LINPACK and EISPACK without them having to learn FORTRAN. It soon spread to other universities and found a strong audience within the applied mathematics community. Jack Little, an engineer, was exposed to it during a visit Moler made to Stanford University in 1983. Recognizing its commercial potential, he joined with Moler and Steve Bangert. They rewrote MATLAB in C and founded MathWorks in 1984 to continue its development. These rewritten libraries were known as JACKPAC. In 2000, MATLAB was rewritten to use a newer set of libraries for matrix manipulation, LAPACK.

COMPONENTS

Syntax

The MATLAB application is built around the MATLAB language, and most use of MATLAB involves typing MATLAB code into the Command Window (as an

Page 10: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

interactive mathematical shell), or executing text files containing MATLAB code and functions.

Variables

Variables are defined using the assignment operator, =. MATLAB is a weekly dynamically typed programming language. It is a weekly typed language because types are implicitly converted. It is a dynamically typed language because variables can be assigned without declaring their type, except if they are to be treated as symbolic objects, and that their type can change. Values can come from constants, from computation involving values of other variables, or from the output of a function. For example:

y = 104 97 116 >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*sin(x) y = -1.6097 3.0000

Vectors/matrices

As suggested by its name (a contraction of "Matrix Laboratory"), MATLAB can create and manipulate arrays of 1 (vectors), 2 (matrices), or more dimensions. In the MATLAB vernacular, a vector refers to a one dimensional (1×N or N×1) matrix, commonly referred to as an array in other programming languages. A matrix generally refers to a 2-dimensional array, i.e. an m×n array where m and n are greater than 1. Arrays with more than two dimensions are referred to as multidimensional arrays. Arrays are a fundamental type and many standard functions natively support array operations allowing work on arrays without explicit loops. Therefore the MATLAB language is also an example of array programming language.

A simple array is defined using the syntax: init:increment:terminator. For instance:

>> array = 1:2:9 array = 1 3 5 7 9

Defines a variable named array (or assigns a new value to an existing variable with the name array) which is an array consisting of the values 1, 3, 5, 7, and 9. That is, the array starts at 1 (the initvalue), increments with each step from the previous

Page 11: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

value by 2 (the increment value), and stops once it reaches (or to avoid exceeding) 9 (the terminator value).

Semicolons

Unlike many other languages, where the semicolon is used to terminate commands, in MATLAB the semicolon serves to suppress the output of the line that it concludes. Commands that have return values would be: numbers/vectors/matrices and various mathematical functions executed with these (addition, multiplication etc.), strings and strings functions etc. Each number/vector/matrix/string/function with a return value, if it appears in a line not terminated by a semicolon, will have its value displayed on the screen once the line is interpreted. Some Matlab commands (such as the graphical "plot" command), however, will not have any return value associated with them, in which case the semicolon is redundant in that sense.

However, a semicolon, as it symbolizes the end of a command, can allow another command to be listed in the same line. That will hardly be used at all in a Matlab program file (i.e., a Matlab file with extension ".m") which typically groups several commands, each in a separate line - for better "readability"; but it could be handy when typing commands in the command line prompt window in the desktop, whereby each line is interpreted and executed immediately after the pressing of the enter key (and therefore the semicolon allows to type a command and not execute it before typing another one).

Structures

MATLAB supports structure data types. Since all variables in MATLAB are arrays, a more adequate name is "structure array", where each element of the array has the same field names. In addition, MATLAB supports dynamic field names (field look-ups by name, field manipulations etc.). Unfortunately, MATLAB JIT does not support MATLAB structures, therefore just a simple bundling of various variables into a structure will come at a cost.[citation needed]

Secondary programming

MATLAB also carries secondary programming which incorporates the MATLAB standard code into a more user friendly way to represent a function or system.

Graphics and graphical user interface programming

MATLAB supports developing applications with graphical user interface features. It also has tightly-integrated graph-plotting features. For example the function plot can be used to produce a graph from two vectors x and y. The code:

Page 12: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

x = 0:pi/100:2*pi; y = sin(x); plot(x,y)

produces the following figure of the sine function:

Three-dimensional graphics can be produced using the functions surf, plot3 or mesh.

Interfacing with other languages

MATLAB can call functions and subroutines written in the C programming language or FORTRAN. A wrapper function is created allowing MATLAB data types to be passed and returned. The dynamically loadable object files created by compiling such functions are termed "MEX-files" (for MATLAB executable).

Libraries written in Java, ActiveX or .NET can be directly called from MATLAB and many MATLAB libraries (for example XML or SQL support) are implemented as wrappers around Java or ActiveX libraries. Calling MATLAB from Java is more complicated, but can be done with MATLAB extension,[13] which is sold separately by MathWorks, or using an undocumented mechanism called JMI (Java-to-Matlab Interface), which should not be confused with the unrelated Java Metadata Interface that is also called JMI.

As alternatives to the MuPAD based Symbolic Math Toolbox available from MathWorks, MATLAB can be connected to Maple or Mathematica.

Libraries also exist to import and export MathML.

License

MATLAB is a proprietary product of MathWorks, so users are subject to vendor lock-in. Although MATLAB Builder can deploy MATLAB functions as library files

Page 13: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

which can be used with .NET or JAVA application building environment, future development will still be tied to the MATLAB language.

Each toolbox is purchased separately. If an evaluation license is requested, the MathWorks sales department requires detailed information about the project for which MATLAB is to be evaluated. Overall the process of acquiring a license is expensive in terms of money and time. If at all granted (which happens often), the evaluation license is valid for two to four weeks. A student version of MATLAB is also available.

Alternatives

MATLAB has a number of competitors. Commercial competitors include Mathematica, Maple, IDL by ITT Visual Information Solutions and Metlynx.

There are also free open source alternatives to MATLAB, in particular GNU Octave, FreeMat, and Scilab which are intended to be mostly compatible with the MATLAB language (but not the MATLAB desktop environment).

Among other languages that treat arrays as basic entities (array programming languages) are APL and J, Fortran 95 and 2003, as well as the statistical language S (the main implementations of S areS-PLUS and the popular open source language R).

There are also several libraries to add similar functionality to existing languages, such as IT++ for C++, Perl Data Language for Perl, ScalaLab for Scala and SciPy together with NumPy and Matplotlibfor Python.

File Extensions

Native

.fig

MATLAB Figure

.m

MATLAB function, script, or class

.mat

Page 14: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

MATLAB binary file for storing variables

.mex...

MATLAB executable (platform specific, e.g. ".mexmac" for the Mac, ".mexglx"

for Linux, etc.)

.p

MATLAB content-obscured .m file (result e() )

Third-party

.jkt

GPU Cache file generated by Jacket for MATLAB (AccelerEyes)

.mum

MATLAB CAPE-OPEN Unit Operation Model File (AmsterCHEM

WORKING ENVIRONMENTS

The MATLAB language supports the vector and matrix operations that are

fundamental to engineering and scientific problems.

MATLAB provides 3 working environments:

1. Command Window: For direct implementation of functions and numerical

Computing.

2. Editor Window: For creating and saving files for future use. It saves files with

“.m” extension

3. GUI: Graphical User Interface for making user friendly softwares. It also

provides deployment tool.

Page 15: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

COMMAND WINDOW

Page 16: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

EDITOR WINDOW

Page 17: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

GUIDE

DEVELOPMENTAL TOOLS

Page 18: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

MATLAB includes development tools that help in implementing

algorithm efficiently. These include the following:

* MATLAB Editor - Provides standard editing and debugging features,

such as setting breakpoints and single stepping

*Code Analyzer - Checks your code for problems and recommends

modifications to maximize performance and maintainability

*MATLAB Profiler - Records the time spent executing each line of code

*Directory Reports - Scan all the files in a directory and report on code

efficiency, file differences, file dependencies, and code coverage

IMAGE PROCESSING

What is an image?

Page 19: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

An image refers to a 2D light intensity function f(x,y), where (x,y) denote spatial

coordinates and the value of f at any point (x,y) is proportional to the brightness or

gray levels of the image at that point. A digital image is an image f(x,y) that has been

discretized both in spatial coordinates and brightness. The elements of such a digital

array are called image elements or pixels.

Image processing

Image processing is a physical process used to convert an image signal into a

physical image. The image signal can be either digital or analog. The actual output

itself can be an actual physical image or the characteristics of an image.

The most common type of image processing is photography. In this process,

an image is captured using a camera to create a digital or analog image. In order to

produce a physical picture, the image is processed using the appropriate technology

based on the input source type.

Digital image processing is the use of computer algorithms to perform image

processing on digital images. As a subcategory or field of digital signal processing,

digital image processing has many advantages over analog image processing.

The purpose of the image processing is divided into 5 categories.

Purpose 1: Make an image better: Image sharpening and image restoration.

Purpose 2: Measure the interesting objects in an image: Pattern

measurement.

Purpose 3: Distinguish or recognize the objects in an image: Image

recognition or image understanding.

Purpose 4: Search for the image of interest: Image retrieval.

Purpose 5: See objects which are not seen: Visualization

Fundamental steps in image processing:

Page 20: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

1. Image acquisition: to acquire a digital image

2. Image preprocessing: to improve the image in ways that increase the chances for

success of the other processes.

3. Image segmentation: to partitions an input image into its constituent parts or

objects.

4. Image representation: to convert the input data to a form suitable for computer

processing.

5. Image description: to extract features that result in some quantitative information

of interest or features that are basic for differentiating one class of objects from

another.

6. Image recognition: to assign a label to an object based on the information

provided by its descriptors.

7. Image interpretation: to assign meaning to an ensemble of recognized objects.

Page 21: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Creating Apps with Graphical User Interfaces in MATLAB

GUIs (also known as graphical user interfaces or UIs) provide point-and-click control of software applications, eliminating the need to learn a language or type commands in order to run the application.

MATLAB apps are self-contained MATLAB programs with GUI front ends that automate a task or calculation. The GUI typically contains controls such as menus, toolbars, buttons, and sliders. Many MATLAB products, such as Curve Fitting Toolbox, Signal Processing Toolbox, and Control System Toolbox, include apps with custom user interfaces. You can also create your own custom apps, including their corresponding UIs, for others to use.

Creating a MATLAB GUI Interactively

GUIDE (GUI development environment) provides tools for designing user interfaces for custom apps. Using the GUIDE Layout Editor, you can graphically design your UI. GUIDE then automatically generates the MATLAB code for constructing the UI, which you can modify to program the behavior of your app.

Creating a MATLAB GUI Programmatically

For more control over design and development, you can also create MATLAB code that defines all component properties and behaviors. MATLAB contains built-in functionality to help you create the GUI for your app programmatically. You can add dialog boxes, user interface controls (such as push buttons and sliders), and containers (such as panels and button groups).

Page 22: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

A custom app with a GUI in MATLAB

Examples and How To

Creating a GUI with GUIDE 10:28 (Video) GUI Building Tutorials (Videos) Displaying Matrix Data in a GUI (Example) MATLAB GUI Programming Resources (Blog) MATLAB Apps Overview 1:45 (Video) Writing Apps in MATLAB (Article) User-Contributed Apps with Custom GUIs (MATLAB Central File Exchange)

Software Reference

Graphical User Interfaces - Building Basics (MATLAB Documentation) Building Image Processing Graphical User Interfaces with Modular Tools (Image

Processing Toolbox Documentation)

Building GUI interfaces in Matlab

MATLAB

This example shows how to build user GUI in Matlab. We will build a simple calculator to do that.

Start gui builder by typing >>guide

Select "Blank GUI", click OK

The GUI window will open

Resize the design window. Using the pallette on the left, drag and drop, resize and position the canvas, buttons, and static text

Page 23: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

windows.

Double-click on an object to open the properties dialog. Change the captions on the buttons and remove "Static Text" string from the text window. Set the font size 30 for the text windows and change horizontal alingment to "right."

The GUI is finished. Save the work. The rest of the design process will take care of the functionality provided by each GUI component

OBJECTS Push button Slider Radio button Check box Edit text Static text Pop up menu List box Toggle button Table Axes Panel Button group ActiveX control Select

3.Object achievement

Page 24: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Push Buttons

Push buttons generate an action when pressed (e.g., an OK button may close a

dialog box and apply settings). When you click down on a push button, it

appears depressed; when you release the mouse, the button's appearance

returns to its nondepressed state; and its callback executes on the button up

event.

Properties to Set

*String - set this property to the character string you want displayed on the push button.

*Tag- GUIDE uses theTag property to name the callback subfunction in the application M-file. Set Tag to a descriptive name (e.g., close_button ) before activating the GUI.

Programming the Callback

When the user clicks on the push button, its callback executes. Push buttons

do not return a value or maintain a state.

Sliders

Sliders accept numeric input within a specific range by enabling the user to move a sliding bar. Users

move the bar by pressing the mouse button and dragging the slide, by clicking in the trough, or by

clicking an arrow. The location of the bar indicates a numeric value.

Frames

Frames are boxes that enclose regions of a figure window. Frames can make a user interface easier to

understand by visually grouping related controls. Frames have no callback routines associated with them

and only uicontrols can appear within frames (axes cannot).

List Boxes

List boxes display a list of items and enable users to select one or more items. The String property

contains the list of strings displayed in the list box. The first item in the list has an index of 1. The Value

Page 25: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

property contains the index into the list of strings that correspond to the selected item. If the user selects

multiple items, then Values a vector of indices. By default, the first item in the list is highlighted when

the list box is first displayed. If you do not want any item highlighted, then set the Value property to

empty, [].

The ListboxTop property defines which string in the list displays as the top most item when the list box is not large enough to display all list entries. ListboxTop is an index into the array of strings defined by the String property and must have a value between 1 and the number of strings. Noninteger values are fixed to the next lowest integer.

Popup Menus

Popup menus open to display a list of choices when users press the arrow. The String property contains

the list of string displayed in the popup menu. The Value property contains the index into the list of

strings that correspond to the selected item.

When not open, a popup menu displays the current choice, which is determined by the index contained in the Value property. The first item in the list has an index of 1. Popup menus are useful when you want to provide users with a number of mutually exclusive choices, but do not want to take up the amount of space that a series of radio buttons requires.

Toggle Buttons

Toggle buttons generate an action and indicate a binary state (e.g., on or off). When you click on a toggle

button, it appears depressed and remains depressed when you release the mouse button, at which point

the callback executes. A subsequent mouse click returns the toggle button to the nondepressed state and

again executes its callback.

Programming the Callback

The callback routine needs to query the toggle button to determine what state it is in. MATLAB sets the Value property equal to the Max property when the toggle button is depressed ( Max is 1 by default) and equal to the Min property when the toggle button is not depressed ( Min is 0 by default).

.slider

Page 26: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

You can determine the current value of a slider from within its callback by querying its Value property, as illustrated in the following example:

function slider1_Callback(hObject, eventdata, handles) slider_value = get(hObject,'Value'); % Proceed with callback...

The Max and Min properties specify the slider's maximum and minimum values. The slider's range is Max - Min.

Radio Buttons

Radio buttons are similar to checkboxes, but are intended to be mutually exclusive within a group of

related radio buttons (i.e., only one button is in a selected state at any given time). To activate a radio

button, click the mouse button on the object. The display indicates the state of the button.

You can determine the current state of a radio button from within its Callback callback by querying the state of its Value property. If the radio button is selected, its Value property is equal to its Max property. If the radio button is not selected, it is equal to its Min property. This example illustrates such a test.

function radiobutton1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) % Radio button is selected, take appropriate action else % Radio button is not selected, take appropriate action end

You can also change the state of a radio button programmatically by setting the radio button Value property to the value of the Max or Min property. This example illustrates a possible syntax for such an assignment.

set(handles.radiobutton1,'Value','Max')

.Check Box

You can determine the current state of a check box from within its callback by querying the state of its Value property. The Value property is equal to the Max property when the check box is checked and equal to the Min property when the check box is not checked. This example illustrates such a test.

function checkbox1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) % Checkbox is checked-take approriate action

Page 27: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Else % Checkbox is not checked-take approriate action end

You can also change the state of a check box programmatically by setting the check box Value property to the value of the Max or Min property. This example illustrates a possible syntax for such an assignment.

maxVal = get(handles.checkbox1,'Max'); set(handles.checkbox1,'Value',maxVal);

puts the check box with Tag property checkbox1 in the checked state.

Back to Top

selects the radio button with Tag property radiobutton1 and deselects the previously selected radio button.

Note You can use a button group to manage exclusive selection behavior for radio buttons. See Button Group for more information.

.List Box

When the list box Callback callback is triggered, the list box Value property contains the index of the selected item, where 1 corresponds to the first item in the list. The String property contains the list as a cell array of strings.

This example retrieves the selected string. It assumes listbox1 is the value of the Tag property. Note that it is necessary to convert the value returned from the String property from a cell array to a string.

function listbox1_Callback(hObject, eventdata, handles) index_selected = get(hObject,'Value'); list = get(hObject,'String'); item_selected = list{index_selected}; % Convert from cell array % to string

You can also select a list item programmatically by setting the list box Value property to the index of the desired item. For example,

set(handles.listbox1,'Value',2)

selects the second item in the list box with Tag property listbox1.

Triggering Callback Execution

Page 28: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

MATLAB software executes the list box's Callback callback after the mouse button is released or after certain key press events:

The arrow keys change the Value property, trigger callback execution, and set the figure SelectionType property to normal.

The Enter key and space bar do not change the Value property but trigger callback execution and set the figure SelectionType property to open.

If the user double-clicks, the callback executes after each click. The software sets the figure SelectionType property to normal on the first click and to open on the second click. The callback can query the figure SelectionType property to determine if it was a single or double click.

List Box Examples

See the following examples for more information on using list boxes:

List Box Directory Reader — Shows how to creates a GUI that displays the contents of directories in a list box and enables users to open a variety of file types by double-clicking the filename.

Accessing Workspace Variables from a List Box — Shows how to access variables in the MATLAB base workspace from a list box GUI.

Edit Text

Edit text controls are fields that enable users to enter or modify text strings. Use edit text when you

want text as input. The String property contains the text entered by the user. To obtain the string typed by

the user, get the String property in the callback.

Static Text

Static text controls displays lines of text. Static text is typically used to label other controls, provide

directions to the user, or indicate values associated with a slider. Users cannot change static text

interactively and there is no way to invoke the callback routine associated with it.

Toggle button

It has only two states ,”on” or “off’.

Table

Page 29: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Convert rectangular cell array into table and insert it into report

Description

This component converts a rectangular cell array into a table and inserts the table into the report.

Table Content

Workspace variable name: Specifies the workspace variable name with which to construct the table.

Collapse large cells to a single description: Consolidates large cells into one description.

.Axes Properties

Modify axes properties

Creating Axes Objects

Use axes to create axes objects.

Modifying Properties

You can set and query graphics object properties in two ways:

The Property Editor is an interactive tool that enables you to see and change object property values.

The set and get commands let you set and query the values of properties.

Panel

Panels group GUI components and can make a GUI easier to understand by visually grouping related controls. A panel can contain panels and button groups as well as axes and user interface controls such as push buttons, sliders, pop-up menus, etc. The position of each component within a panel is interpreted relative to the lower-left corner of the panel.

Generally, if the GUI is resized, the panel and its components are also resized. However, you can control the size and position of the panel and its components. You can do this by setting the GUI Resize behavior to Other (Use ResizeFcn) and providing a ResizeFcn callback for the panel.

Page 30: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Even when Resize behavior for the figure is Other (Use ResizeFcn), if components use normalized Units, they still automatically resize proportionally unless a ResizeFcn overrides that behavior. The following example shows how you can use a ResizeFcn to do more than that. The GUI repositions components automatically. Its panel's ResizeFcn proportionally adjusts the fontSize of a button's label.

Button Group

Button groups are like panels except that they manage exclusive selection behavior for radio buttons and toggle buttons. If a button group contains a set of radio buttons, toggle buttons, or both, the button group allows only one of them to be selected. When a user clicks a button, that button is selected and all others are deselected.

When programming a button group, you do not code callbacks for the individual buttons; instead, use its SelectionChangeFcn callback to manage responses to selections. The following example, Programming a Button Group, illustrates how you use uibuttongroup event data to do this.

The following figure shows a button group with two radio buttons and two toggle buttons. Radio Button 1 is selected.

If a user clicks the other radio button or one of the toggle buttons, it becomes selected and Radio Button 1 is deselected. The following figure shows the result of clicking Toggle Button 2.

The button group's SelectionChangeFcn callback is called whenever a selection is made. Its hObject input argument contains the handle of the selected radio button or toggle button.

If you have a button group that contains a set of radio buttons and toggle buttons and you want:

An immediate action to occur when a radio button or toggle button is selected, you must include the code to control the radio and toggle buttons in the button group's SelectionChangeFcn callback function, not in the individual toggle button Callback functions.

Another component such as a push button to base its action on the selection, then that component's Callback callback can get the handle of the selected radio button or toggle button from the button group's SelectedObject property.

Page 31: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

ActiveX Controls

GUIDE now enables you to insert an ActiveX control into your GUI if you are running MATLAB on Microsoft Windows. When you drag an ActiveX component from the component palette into the layout area, GUIDE displays a dialog in which you can select any registered ActiveX control on your system. When you select an ActiveX control and click Create, the control appears as a small box in the Layout Editor. You can then program the control to do what you want it to.

Page 32: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

PROJECT INTRODUCTION Personal identification is to associate a particular individual with an identity. It plays a critical role in our society, in which questions related to identity of an individual such as “Is this the person who he or she claims to be?”, “Has this applicant been here before?”, “Should this individual be given access to our system?” “Does this employee have authorization to perform this transaction?” etc are asked millions of times every day by hundreds of thousands of organizations in financial services, health care, electronic commerce, telecommunication, government, etc. With the rapid evolution of information technology, people are becoming even more and more electronically connected. As a result, the ability to achieve highly accurate automatic personal identification is becoming more critical. A wide variety of systems require reliable personal authentication schemes to either confirm or determine the identity of individuals requesting their services. The purpose of such schemes is to ensure that the rendered services are accessed by a legitimate user, and not anyone else. Examples of these systems include secure access to buildings, computer systems, laptops, cellular phones and ATMs. In the absence of robust authentication schemes, these systems are vulnerable to the wiles of an impostor. Traditionally, passwords (knowledge-based security) and ID cards (token-based security) have been used to restrict access to systems. The major advantages of this traditional personal identification are that (i) They are very simple

(ii) They can be easily integrated into different systems with a low cost. However these approaches are not based on any inherent attributes of an individual to make a personal identification thus having number of disadvantages like tokens may be lost, stolen, forgotten, or misplaced; PIN may be forgotten or guessed by impostors. Security can be easily breached in these systems when a password is divulged to an unauthorized user or a card is stolen by an impostor; further, simple passwords are easy to guess (by an impostor) and difficult passwords may be hard to recall (by a legitimate user).Therefore they are unable to satisfy the security requirements of our electronically interconnected information society. The emergence of biometrics has addressed the problems that plague traditional verification.

Page 33: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

1.2 Biometrics In the world of computer security, biometrics refers to authentication techniques that rely on measurable physiological and individual characteristics that can be automatically verified. In other words, we all have unique personal attributes that can be used for distinctive identification purposes, including a fingerprint, the pattern of a retina, and voice characteristics. Strong or two-factor authentication—identifying oneself by two of the three methods of something you know (for example, a password), have (for example, a swipe card), or is (for example, a fingerprint)—is becoming more of a genuine standard in secure computing environments. Some personal computers today can include a fingerprint scanner where you place your index finger to provide authentication. The computer analyzes your fingerprint to determine who you are and, based on your identity followed by a pass code or pass phrase, allows you different levels of access. Access levels can include the ability to open sensitive files, to use credit card information to make electronic purchases, and so on.

1.3 Biometrics Authentication Techniques A biometric authentication is essentially a pattern-recognition that makes a personal identification by determining the authenticity of a specific physiological or behavioral characteristic possessed by the user. An important issue is designing a practical approach to determine how an individual is identified. An authentication can be divided into two modules: a.) Enrollment module b.) Identification or Verification module

1.4 How Biometric Technologies Work The enrollment module is responsible for enrolling individuals into the biometric system. During the enrollment phase, the biometric characteristic of an individual is first scanned by a biometric reader to produce a raw digital representation of the characteristic. In order to 9

Page 34: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

facilitate matching, the raw digital representation is usually further processed by feature extractor to generate a compact but expensive representation, called a template. Depending on the application, the template may be stored in the central database. Depending on the application, biometrics can be used in one of two modes: verification or identification. Verification—also called authentication—is used to verify a person’s identity—that is, to authenticate that individuals are who they say they are. Identification is used to establish a person’s identity—that is, to determine who a person is. Although biometric technologies measure different characteristics in substantially different ways, all biometric systems start with an enrollment stage followed by a matching stage that can use either verification or identification. 1.4.1 Enrollment In enrollment, a biometric system is trained to identify a specific person. The person first provides an identifier, such as an identity card. The biometric is linked to the identity specified on the identification document. He or she then presents the biometric (e.g., fingertips, hand, or iris) to an acquisition device. The distinctive features are located and one or more samples are extracted, encoded, and stored as a reference template for future comparisons. Depending on the technology, the biometric sample may be collected as an image, a recording, or a record of related dynamic measurements. How biometric systems extract features and encode and store information in the template is based on the system vendor’s proprietary algorithms. Template size varies depending on the vendor and the technology. Templates can be stored remotely in a central database or within a biometric reader device itself; their small size also allows for storage on smart cards or tokens. Minute changes in positioning, distance, pressure, environment, and other factors influence the generation of a template. Consequently, each time an individual’s biometric data are captured, the new template is likely to be unique. Depending on the biometric system, a person may need to present biometric data several times in order to enroll. Either the reference template may then represent an amalgam of the captured data or several enrollment templates may be stored. The quality of the template or templates is critical in the overall success of the biometric application. Because biometric features can change over time, people may have to reenroll to update their reference template. 10

Page 35: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Some technologies can update the reference template during matching operations. The enrollment process also depends on the quality of the identifier the enrollee presents. The reference template is linked to the identity specified on the identification document. If the identification document does not specify the individual’s true identity, the reference template will be linked to a false identity. 1.4.2 Verification In verification systems, the step after enrollment is to verify that a person is who he or she claims to be (i.e., the person who enrolled). After the individual provides an identifier, the biometric is presented, which the biometric system captures, generating a trial template that is based on the vendor’s algorithm. The system then compares the trial biometric template with this person’s reference template, which was stored in the system during enrollment, to determine whether the individual’s trial and stored templates match. Verification is often referred to as 1:1 (one-to-one) matching. Verification systems can contain databases ranging from dozens to millions of enrolled templates but are always predicated on matching an individual’s presented biometric against his or her reference template. Nearly all verification systems can render a match–no-match decision in less than a second. One of the most common applications of verification is a system that requires employees to authenticate their claimed identities before granting them access to secure buildings or to computers. 1.4.3 Identification In identification systems, the step after enrollment is to identify who the person is. Unlike verification systems, no identifier is provided. To find a match, instead of locating and comparing the person’s reference template against his or her presented biometric, the trial template is compared against the stored reference templates of all individuals enrolled in the system. Identification systems are referred to as 1: M (one-to-M, or one-to-many) matching because an individual’s biometric is compared against multiple biometric templates in the system’s database. There are two types of identification systems: positive and negative. Positive identification systems are designed to ensure that an individual’s biometric is enrolled in the database. The anticipated result of a search is a match. A typical positive identification system controls 11

Page 36: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

access to a secure building or secure computer by checking anyone who seeks access against a database of enrolled employees. The goal is to determine whether a person seeking access can be identified as having been enrolled in the system. Negative identification systems are designed to ensure that a person’s biometric information is not present in a database. The anticipated result of a search is a no match. Comparing a person’s biometric information against a database of all who are registered in a public benefits program, for example, can ensure that this person is not “double dipping” by using fraudulent documentation to register under multiple identities. Another type of negative identification system is a watch list system. Such systems are designed to identify people on the watch list and alert authorities for appropriate action. For all other people, the system is to check that they are not on the watch list and allow them normal passage. The people whose biometrics is in the database in these systems may not have provided them voluntarily. For instance, for a surveillance system, the biometric may be faces captured from mug shots provided by a law enforcement agency. 1.4.4 Matches Are Based on Threshold Settings No match is ever perfect in either verification or identification system, because every time a biometric is captured, the template is likely to be unique. Therefore, biometric systems can be configured to make a match or no-match decision, based on a predefined number, referred to as a threshold, which establishes the acceptable degree of similarity between the trial template and the enrolled reference template. After the comparison, a score representing the degree of similarity is generated, and this score is compared to the threshold to make a match or no-match decision. Depending on the setting of the threshold in identification systems, sometimes several reference templates can be considered matches to the trial template, with the better scores

Page 37: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

corresponding to better matches.

Page 38: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

1.5 Leading Biometric Technologies A growing number of biometric technologies have been proposed over the past several years, but only in the past 5 years have the leading ones become more widely deployed. Some technologies are better suited to specific applications than others, and some are more acceptable to users. We describe seven leading biometric technologies:

Speaker Recognition Fingerprint Recognition Fingerprint recognition is one of the best known and most widely used biometric technologies. Automated systems have been commercially available since the early 1970s, and at the time of our study, we found there were more than 75 fingerprint recognition technology companies. Until recently, fingerprint recognition was used primarily in law enforcement applications. Fingerprint recognition technology extracts features from impressions made by the distinct ridges on the fingertips. The fingerprints can be either flat or rolled. A flat print captures only an impression of the central area between the fingertip and the first knuckle; a rolled print captures ridges on both sides of the finger. An image of the fingerprint is captured by a scanner, enhanced, and converted into a template. Scanner technologies can be optical, silicon, or ultrasound technologies. Ultrasound, while potentially the most accurate, has not been demonstrated in widespread use. In 2002, we found that optical scanners were the most commonly used. During enhancement, “noise” caused by such things as dirt, cuts, scars, and creases or dry, wet or worn fingerprints is reduced, and the definition of the ridges is enhanced. Approximately 80 percent of vendors base their algorithms on the extraction of minutiae points relating to breaks in the ridges of the fingertips. Other algorithms are based on extracting ridge patterns.

Page 39: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

1.6 Fingerprints as a Biometric Among all biometric traits, fingerprints have one of the highest levels of reliability and have been extensively used by forensic experts in criminal investigations. A fingerprint refers to the flow of ridge patterns in the tip of the finger. The ridge flow exhibits anomalies in local regions of the fingertip (Figure), and it is the position and orientation of these anomalies that are used to represent and match fingerprints. Although not scientifically established, fingerprints are believed to be unique across individuals, and across fingers of the same individual. Even identical twins having similar DNA, are believed to have different fingerprints. Traditionally, fingerprint patterns have been extracted by creating an inked impression of the fingertip on paper. The electronic era has ushered in a range of compact sensors that provide digital images of these patterns. These sensors can be easily incorporated into existing computer peripherals like the mouse or the keyboard (figure), thereby making this mode of identification a very attractive proposition. This has led to the increased use of automatic fingerprint-based authentication systems in both civilian and law enforcement applications.

Page 40: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

1.6.1 Fingerprint Representation The uniqueness of a fingerprint is determined by the topographic relief of its ridge structure and the presence of certain ridge anomalies termed as minutiae points. Typically, the global configuration defined by the ridge structure is used to determine the class of the fingerprint, while the distribution of minutiae points is used to match and establish the similarity between two fingerprints. Automatic fingerprint identification systems, that match a query print against a large database of prints (which can consist of millions of prints), rely on the pattern of ridges in the query image to narrow their search in the database (fingerprint indexing), and on the minutiae points to determine an exact match (fingerprint matching). The ridge flow pattern itself is rarely used for matching fingerprints. 1.6.2 Minutiae Minutiae, in fingerprinting terms, are the points of interest in a fingerprint, such as bifurcations (a ridge splitting into two) and ridge endings. Examples are: a.) ridge endings - a ridge that ends abruptly b.) ridge bifurcation - a single ridge that divides into two ridges c.) short ridges, island or independent ridge - a ridge that commences, travels a short distance and then ends d.) ridge enclosures - a single ridge that bifurcates and reunites shortly afterward to continue as a single ridge e.) spur - a bifurcation with a short ridge branching off a longer ridge f.) crossover or bridge - a short ridge that runs between two parallel ridges

Page 41: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Minutiae also refer to any small or otherwise incidental details. But the focus when matching is only on the 2 main minutiae; ridge ending and

ridge bifurcation

We propose a simple and effective approach for fingerprint image enhancement and minutiae extraction based on the frequency and orientation of the local ridges and thereby extracting correct minutiae. Automatic and reliable extraction of minutiae from fingerprint images is a critical step in fingerprint matching. The quality of input fingerprint images plays an important role in the performance of automatic identification and verification algorithms. In this project we presents a fast fingerprint enhancement and minutiae extraction algorithm which improves the clarity of the ridge and valley structures of the input fingerprint images based on the frequency and orientation of the local ridges and thereby extracting correct minutiae. Fingerprint based identification has been one of the most successful biometric techniques used for personal identification. Each individual has unique fingerprints. A fingerprint is the pattern of ridges and valleys on the finger tip. A fingerprint is thus defined by the uniqueness of the local ridge characteristics and their relationships. Minutiae points are these local ridge characteristics that occur either at a ridge ending or a ridge bifurcation. 19

Page 42: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

A ridge ending is defined as the point where the ridge ends abruptly and the ridge bifurcation is the point where the ridge splits into two or more branches. Automatic minutiae detection becomes a difficult task in low quality fingerprint images where noise and contrast deficiency result in pixel configurations similar to that of minutiae. This is an important aspect that has been taken into consideration in this presentation for extraction of the minutiae with a minimum error in a particular location. A complete minutiae extraction scheme for automatic fingerprint recognition

systems is presented. The proposed method uses improving alternatives for

the image enhancement process, leading consequently to an increase of the

reliability in the minutiae extraction task.

Page 43: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

The Code Load image

I=imread('Empreinte.bmp');

imshow(I)

set(gcf,'position',[1 1 600 600]);

Page 44: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Binarize

We binarize the image. After the operation, ridges in the fingerprint are highlighted

with black color while furrow are white.

J=I(:,:,1)>160;

imshow(J)

set(gcf,'position',[1 1 600 600]);

Page 45: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Thining

Ridge thining is to eliminate the redundant pixels of ridges till the ridges are just

one pixel wide.

K=bwmorph(~J,'thin','inf');

imshow(~K)

set(gcf,'position',[1 1 600 600]);

Page 46: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Minutiae

We filter the thinned ridge map by the filter "minutie". "minutie" compute the

number of one-value of each 3x3 window: * if the central is 1 and has only 1 one-

value neighbor, then the central pixel is a termination. * if the central is 1 and has 3

one-value neighbor, then the central pixel is a bifurcation. * if the central is 1 and

has 2 one-value neighbor, then the central pixel is a usual pixel.

fun=@minutie;

L = nlfilter(K,[3 3],fun);

Termination LTerm=(L==1);

imshow(LTerm)

LTermLab=bwlabel(LTerm);

propTerm=regionprops(LTermLab,'Centroid');

CentroidTerm=round(cat(1,propTerm(:).Centroid));

imshow(~K)

set(gcf,'position',[1 1 600 600]);

hold on

plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')

Page 47: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Bifurcation

LBif=(L==3);

LBifLab=bwlabel(LBif);

propBif=regionprops(LBifLab,'Centroid','Image');

CentroidBif=round(cat(1,propBif(:).Centroid));

plot(CentroidBif(:,1),CentroidBif(:,2),'go')

Page 48: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Remarks

We have a lot of spurious minutae. We are going to process them. process 1: if the

distance between a termination and a biffurcation is smaller than D, we remove this

minutiae process 2: if the distance between two biffurcations is smaller than D, we

remove this minutia process 3: if the distance between two terminations is smaller

than D, we remove this minutia

D=6;

Process 1 Distance=DistEuclidian(CentroidBif,CentroidTerm);

SpuriousMinutae=Distance<D;

[i,j]=find(SpuriousMinutae);

CentroidBif(i,:)=[];

CentroidTerm(j,:)=[];

Page 49: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Process 2 Distance=DistEuclidian(CentroidBif);

SpuriousMinutae=Distance<D;

[i,j]=find(SpuriousMinutae);

CentroidBif(i,:)=[];

Process 3 Distance=DistEuclidian(CentroidTerm);

SpuriousMinutae=Distance<D;

[i,j]=find(SpuriousMinutae);

CentroidTerm(i,:)=[];

hold off

imshow(~K)

hold on

plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')

plot(CentroidBif(:,1),CentroidBif(:,2),'go')

hold off

Page 50: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

ROI

We have to determine a ROI. For that, we consider the binary image, and we aply

an closing on this image and an erosion.

Kopen=imclose(K,strel('square',7));

KopenClean= imfill(Kopen,'holes');

KopenClean=bwareaopen(KopenClean,5);

imshow(KopenClean)

KopenClean([1 end],:)=0;

KopenClean(:,[1 end])=0;

ROI=imerode(KopenClean,strel('disk',10));

imshow(ROI)

Page 51: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

imshow(I)

hold on

imshow(ROI)

alpha(0.5)

hold on

plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')

plot(CentroidBif(:,1),CentroidBif(:,2),'go')

hold off

Page 52: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Suppress extrema minutiae

Once we defined the ROI, we can suppress minutiae external to this ROI.

[m,n]=size(I(:,:,1));

indTerm=sub2ind([m,n],CentroidTerm(:,1),CentroidTerm(:,2));

Z=zeros(m,n);

Z(indTerm)=1;

ZTerm=Z.*ROI';

[CentroidTermX,CentroidTermY]=find(ZTerm);

indBif=sub2ind([m,n],CentroidBif(:,1),CentroidBif(:,2));

Z=zeros(m,n);

Z(indBif)=1;

ZBif=Z.*ROI';

[CentroidBifX,CentroidBifY]=find(ZBif);

imshow(I)

hold on

plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)

plot(CentroidBifX,CentroidBifY,'go','linewidth',2)

Page 53: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Orientation

Once we determined the differents minutiae, we have to find the orientation of

each one

Table=[3*pi/4 2*pi/3 pi/2 pi/3 pi/4

5*pi/6 0 0 0 pi/6

pi 0 0 0 0

-5*pi/6 0 0 0 -pi/6

-3*pi/4 -2*pi/3 -pi/2 -pi/3 -pi/4];

Termination Orientation

We have to find the orientation of the termination. For finding that, we analyze the

position of the pixel on the boundary of a 5 x 5 bounding box of the termination.

We compare this position to the Table variable. The Table variable gives the angle

Page 54: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

in radian.

for ind=1:length(CentroidTermX)

Klocal=K(CentroidTermY(ind)-2:CentroidTermY(ind)+2,CentroidTermX(ind)-

2:CentroidTermX(ind)+2);

Klocal(2:end-1,2:end-1)=0;

[i,j]=find(Klocal);

OrientationTerm(ind,1)=Table(i,j);

end

dxTerm=sin(OrientationTerm)*5;

dyTerm=cos(OrientationTerm)*5;

figure

imshow(K)

set(gcf,'position',[1 1 600 600]);

hold on

plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)

plot([CentroidTermX CentroidTermX+dyTerm]',...

[CentroidTermY CentroidTermY-dxTerm]','r','linewidth',2)

Page 55: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Bifurcation Orientation

For each bifurcation, we have three lines. So we operate the same

process than in termination case three times.

for ind=1:length(CentroidBifX)

Klocal=K(CentroidBifY(ind)-2:CentroidBifY(ind)+2,CentroidBifX(ind)-

2:CentroidBifX(ind)+2);

Klocal(2:end-1,2:end-1)=0;

[i,j]=find(Klocal);

if length(i)~=3

CentroidBifY(ind)=NaN;

CentroidBifX(ind)=NaN;

OrientationBif(ind)=NaN;

else

for k=1:3

OrientationBif(ind,k)=Table(i(k),j(k));

dxBif(ind,k)=sin(OrientationBif(ind,k))*5;

dyBif(ind,k)=cos(OrientationBif(ind,k))*5;

end

end

end

plot(CentroidBifX,CentroidBifY,'go','linewidth',2)

OrientationLinesX=[CentroidBifX CentroidBifX+dyBif(:,1);CentroidBifX

CentroidBifX+dyBif(:,2);CentroidBifX CentroidBifX+dyBif(:,3)]';

OrientationLinesY=[CentroidBifY CentroidBifY-dxBif(:,1);CentroidBifY

CentroidBifY-dxBif(:,2);CentroidBifY CentroidBifY-dxBif(:,3)]';

plot(OrientationLinesX,OrientationLinesY,'g','linewidth',2)

Page 56: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Matching Algorithm

We devised an algorithm to match the X and Y co-ordinates of both the Termination points

as well as the bifurcations. We also match their orientations to ensure a perfect match if

found. On discovery of a proper match, the match count is raised by one and at the end of

the matching, the total number of matches is divided by the total number of samples

matched. The final computed percentage is then displayed in the editBox.

Page 57: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Page 58: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Page 59: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

Page 60: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

FUTURE ADVANCEMENTS

1) Design of a database for the successive matches of any entered

sample from the images in the already existent database.

2) Design of algorithms for searches on the basis of type and

structures of the fingerprints, for faster matches.

3) More and better image enhancement through the use of more

powerful filters and transforms for more accurate matching results

and for the elimination of inherent error in the system.

4) Better matching algorithms based on other features than minutiae.

Page 61: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

CONCLUSION

This Finger-Print Recognition By Minutiae Extraction using MatLab is “MATLAB”

based software which can be used by forensic experts in forensics or imaging

laboratories. It is a basic bio-metric verification system aimed at easier user

interface through GUI. It is easy to use and uses highly precise algorithms for

minutiae extraction and matching, with accuracies as high as 88.88% in exact

matches.

The aim of the project is to make user friendly software with advancements on

existing technology and help professionals get a better view of images. The

option to develop a database based on saving the set of data in a database is open

to the users for further enhancement.

It is a cost effective and time saving software with several sublime features and

seeks several future enhancements.

.

Page 62: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

REFERENCE

Mathsworks.com

Wikipedia

CETPA Infotech Pvt. Ltd.

MATLAB product help

Matlab Oxford Publications

Digital Image Processing,Gozales

Page 63: Report FingerPrint

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)