在C#中使用Emgu比较两个指纹图像

时间:2017-01-02 16:39:26

标签: c# emgucv fingerprint

我一直在网上冲浪一段时间来比较指纹图像,我发现emgu非常有趣,现在问题是

  1. 这是准确的吗?

  2. 这是可能的(我认为)

  3. 不知道去哪里(请指导我)
  4. 我在某个地方找到了这个

    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;
    }
    

    但我不知道它是什么,当我尝试运行它时会给我一个错误。

1 个答案:

答案 0 :(得分:0)

要匹配指纹,您需要一种特定的算法来比较细节,它不是图像之间的匹配。 请查看:https://en.wikipedia.org/wiki/Fingerprint_recognition

NIST有一个用于指纹识别的开源SDK:NBIS。 可以下载here

还有来自MegaMatcher SDKNeurotechnology专有SDK。