locked
Fingerprint minutiae RRS feed

  • Question

  • Hello everyone.
    I'm developing an application that will load a fingerprint image
    and extract all minutiae from it.
    At this point I've enhanced the image, binarized it, thinned it to 1px (using Aforge)
    and now I need to extract the minutiae from it.
    I've found an algorithm that works something like this:

    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.

    and after locating those minutiae it should point them out by drawing a small circle at that location.

    The problem is, I don't know how to work with an image, or with pixels...
    if someone would be so kind to explain the concept or how to begin, I would be most grateful =)
    Also, is there any way to apply gabor filtering in visual c#?
    I've found it for matlab, but I don't know the syntax nor have time to learn it.

    here's a screen shot of what I've done so far:
    http://i45.tinypic.com/2q9gxtc.jpg

    Thx in advance
    Wednesday, December 30, 2009 7:39 PM

Answers

  • I spent a little more time reviewing the problem.  Right now you only account for 2 (bifurcation and termination) of at least 7 minutiae.  The 1px thinning of the thumb will oversimplify the problem resulting in the loss of "pores" in the fingerprint.  Islands will also be more difficult to detect.    Those issues aside, let's assume we're using your 3x3 window algorithm and 3x3 aligns to 3x3 pixels for a window of 9 pixels.

    You can divide the image into 3x3 parts starting at the top left of the image.  Using Bitmap.GetPixel you can get the color..from your algorithm I have to assume your using black and white images where 1 is black.  From there you keep iterating the image with 3x3 windows until you have analyzed the entire image.  Create an array to store the minutiae points.  Then draw circles around the points (the basic idea for drawing a circle is in the link earlier, from there just use some basic math to create a proper proportion).
    BrianMackey.NET
    • Marked as answer by Harry Zhu Wednesday, January 6, 2010 2:44 AM
    Thursday, December 31, 2009 7:47 PM
  • Images can be divided into two main categories:  vector or raster images.  Raster images require you go to the correct pixel in the image and flip its color to whatever you want.  Vector images are defined by mathematic equations and as a result are scaleable without losing quality.  Because of the complexity of the linear algebra involved in vector manipulation I recommend you start with Raster images.  Then you can flip pixels instead of write equations.

    As far as working with the raster image, I've only done that kind of work in C for academic work, but this article is pretty nifty.

    BrianMackey.NET
    • Marked as answer by Harry Zhu Wednesday, January 6, 2010 2:44 AM
    Wednesday, December 30, 2009 11:25 PM

All replies

  • Images can be divided into two main categories:  vector or raster images.  Raster images require you go to the correct pixel in the image and flip its color to whatever you want.  Vector images are defined by mathematic equations and as a result are scaleable without losing quality.  Because of the complexity of the linear algebra involved in vector manipulation I recommend you start with Raster images.  Then you can flip pixels instead of write equations.

    As far as working with the raster image, I've only done that kind of work in C for academic work, but this article is pretty nifty.

    BrianMackey.NET
    • Marked as answer by Harry Zhu Wednesday, January 6, 2010 2:44 AM
    Wednesday, December 30, 2009 11:25 PM
  • I spent a little more time reviewing the problem.  Right now you only account for 2 (bifurcation and termination) of at least 7 minutiae.  The 1px thinning of the thumb will oversimplify the problem resulting in the loss of "pores" in the fingerprint.  Islands will also be more difficult to detect.    Those issues aside, let's assume we're using your 3x3 window algorithm and 3x3 aligns to 3x3 pixels for a window of 9 pixels.

    You can divide the image into 3x3 parts starting at the top left of the image.  Using Bitmap.GetPixel you can get the color..from your algorithm I have to assume your using black and white images where 1 is black.  From there you keep iterating the image with 3x3 windows until you have analyzed the entire image.  Create an array to store the minutiae points.  Then draw circles around the points (the basic idea for drawing a circle is in the link earlier, from there just use some basic math to create a proper proportion).
    BrianMackey.NET
    • Marked as answer by Harry Zhu Wednesday, January 6, 2010 2:44 AM
    Thursday, December 31, 2009 7:47 PM
  • Thank you =)
    Monday, February 1, 2010 3:30 PM
  • I am also creating such an application for fingerprint verification.. Could you please help me with the coding.. Thanx
    Tuesday, October 15, 2013 6:23 AM