Comparing two fingerprint image using Emgu in C#

2.1k Views Asked by At

i been surfing the net for a quite some time about comparing fingerprint image and i found emgu is very interesting now questions are

  1. is this accurate?

  2. is this possible(i think)

  3. don't know where to go(guide me please)

i have found this somewhere

private Image<Bgr, byte> bwareaopen(Image<Bgr, byte> Input_Image, int threshold)
{    
     Image<Bgr, byte> bwresults = Input_Image.Copy();    
     using (MemStorage storage = new MemStorage())
     {
         for (Contour<Point> contours = Input_Image.Convert<Gray, byte>().FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST, storage); contours != null; contours = contours.HNext)
         {
             Contour<Point> currentContour = contours.ApproxPoly(contours.Perimeter * 0.05, storage);
             if (currentContour.Area < threshold)
             {
                 for (int i = currentContour.BoundingRectangle.X; i < currentContour.BoundingRectangle.X + currentContour.BoundingRectangle.Width; i++)
                 {
                      for (int j = currentContour.BoundingRectangle.Y; j < currentContour.BoundingRectangle.Y + currentContour.BoundingRectangle.Height; j++)
                      {
                           bwresults.Data[j, i, 0] = 0;
                           bwresults.Data[j, i, 1] = 0;
                           bwresults.Data[j, i, 2] = 0;
                      }
                 }
             }
         }
     }
     return bwresults;
}

but i have no idea what is it, when i try to run it it gives me an error.

2

There are 2 best solutions below

1
On

To Match fingerprints, you need a specific algorithm to compare minutiae, it's not a match between image. Please have a look at : https://en.wikipedia.org/wiki/Fingerprint_recognition

NIST have an open-source SDK for fingerprint recognition: NBIS. It could be downloaded here.

There's also proprietary SDK as MegaMatcher SDK from Neurotechnology.

0
On

you can try "SourceAfis .Net" which is an open source port for the java version, so you can use for fingerprint matching, here is a link to the project:

https://sourceafis.machinezoo.com/net

and this is a dotnet interactive notebook as a demo:

https://github.com/mouadcherkaoui/sourceAfisNotebook