Вы находитесь на странице: 1из 63

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

CONTENTS
Cover Page 1 Students 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB Bio-metric verification. 33 Minutiae.. 34

The Code ... 42 Conclusion.. 61 Reference 62

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

STUDENTS 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)

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

Date: Name & Designation

Date: Name & Designation

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

INTRODUCTION TO MATLAB
INTRODUCTION MATLAB (matrix laboratory) is a numerical computing environment and fourthgeneration 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 multidomain simulation and Model-Based Design for dynamic and embedded systems.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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 (1N or N1) matrix, commonly referred to as an array in other programming languages. A matrix generally refers to a 2-dimensional array, i.e. an mn 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 = 13579 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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:
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

x = 0:pi/100:2*pi; y = sin(x); plot(x,y) produces the following figure of the sine function:

Three-dimensional graphics functions surf, plot3 or mesh. Interfacing with other languages

can

be

produced

using

the

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
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

COMMAND WINDOW

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

EDITOR WINDOW

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

GUIDE

DEVELOPMENTAL TOOLS
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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?

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB 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:

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB 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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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).

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

Else end

% Checkbox is not checked-take approriate action

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB 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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB 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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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 twofactor authenticationidentifying 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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. Verificationalso called authentication is used to verify a persons identitythat is, to authenticate that individuals are who they say they are. Identification is used to establish a persons identitythat 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 vendors 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 individuals 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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 individuals 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 vendors algorithm. The system then compares the trial biometric template with this persons reference template, which was stored in the system during enrollment, to determine whether the individuals 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 individuals presented biometric against his or her reference template. Nearly all verification systems can render a matchno-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 persons 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 individuals biometric is compared against multiple biometric templates in the systems database. There are two types of identification systems: positive and negative. Positive identification systems are designed to ensure that an individuals biometric is enrolled in the database. The anticipated result of a search is a match. A typical positive identification system controls 11

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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 persons biometric information is not present in a database. The anticipated result of a search is a no match. Comparing a persons 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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

corresponding to better matches.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

The Code
Load image
I=imread('Empreinte.bmp'); imshow(I) set(gcf,'position',[1 1 600 600]);

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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]);

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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]);

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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 onevalue 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')

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

Bifurcation
LBif=(L==3); LBifLab=bwlabel(LBif); propBif=regionprops(LBifLab,'Centroid','Image'); CentroidBif=round(cat(1,propBif(:).Centroid)); plot(CentroidBif(:,1),CentroidBif(:,2),'go')

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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,:)=[];

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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)

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB


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

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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)

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

Orientation Once we determined the differents minutiae, we have to find the orientation of each one
Table=[3*pi/4 5*pi/6 pi 0 0 -5*pi/6 -3*pi/4 2*pi/3 pi/2 pi/3 pi/4 0 0 0 pi/6 0 0 0 0 0 -pi/6 -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
July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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)

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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)

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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.

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

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. .

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

REFERENCE
Mathsworks.com Wikipedia CETPA Infotech Pvt. Ltd. MATLAB product help Matlab Oxford Publications Digital Image Processing,Gozales

July,2013 (Month and year of submission)

FINGER-PRINT RECOGNITION BY MINUTIAE EXTRACTION USING MATLAB

July,2013 (Month and year of submission)