I have started with Matlab and Digital Image Processing. I am trying to do Fingerprint recognition. I found many research papers regarding this but I am unsure where to start. Concisely, what is the most basic approach/algorithm for doing fingerprint recognition ?

  • 5
    $\begingroup$ Have you learnt the basics of image processing yet? Perhaps getting upto speed with that and then attempting something more challenging like fingerprint recognition might be a better idea. On the surface, it is as simple as pattern matching with a stored template, but when you dig deeper, there's different layers of advanced topics involved like identifying fingerprint patterns like ridges and whorls, knowing what features to look for and store (you can't do pixel matching on a database that could be in the millions) aligning and orienting the sample correctly with the template, etc. $\endgroup$ Commented Mar 17, 2012 at 18:48
  • $\begingroup$ Ideally you should always have done your research before posing a question here. $\endgroup$ Commented Apr 9, 2012 at 8:13

3 Answers 3


This may help you. Also, everything related to fingerprinting in here. I think is a good documentation to start with and view some source code. Nevertheless, you should learn some other algorithms before you start coding.


The following are the basics of image processing for finger prints

  • Make sure you understand what a finger print is. It is basically a signature for every human being. Every finger on each hand on every person (even twins) have unique patterns. These patterns are of interest to you.
  • These patterns are classified into categories. Deltas, circles etc.
  • You must understand what valleys,ridges, bifurcations, etc are.
  • Once you understand the two above and a bit more, you go onto fingerprint acquisition.
  • Once you have an image. The interesting and difficult part begins. Such as segmentation, enhancement of certain patterns, noise reduction, finally encoding.
  • The encoding part is the penultimate part. When you have an filter/processed image, you create a digital signature which is called encoding. This signature is what the whole fingerprint ended up in.
  • You then create more digital signatures for other images.
  • You make comparisons of these images, trying to figure out matches.
  • Matching itself is another story. Where you will try to see false matches and true matches.

Still there are plenty of other things you need to do. But these are the basics. Lengthy but you can do it if you have interest in it :)

List item

  • $\begingroup$ thanks. How do you create a digital signature for these ? I currently store information regarding ridge endings and bifurcations. then I use elastic string matching algo to match them. Is there a better way ? $\endgroup$
    – krammer
    Commented Apr 11, 2012 at 6:24
  • 1
    $\begingroup$ Well there are so many techniques out there. You are on the right track. But Matching can always be different. You could even use Manhattan distances as well. Matching minutias would be helpful. Take a this very good link on fingerprints. Will help you alot fingerchip.pagesperso-orange.fr/biometrics/types/… $\endgroup$
    – Wajih
    Commented Apr 11, 2012 at 15:41

Take a look at this repository.

It uses oriented gabor filters to perform noise removal, thereby enhancing the image. It can also recover broken ridges up to a certain extent.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.