2017-05-22 65 views
0

我有曼陀羅MFS100光學指紋傳感器,我想構建一個android應用程序,顯示正在掃描的手指的類型。檢測曼陀羅指紋傳感器的手指類型

我想讓應用程序能夠顯示像拇指或索引這樣的手指正在掃描。

注:我已經成功下載的口頭禪MFS100的Android SDK,但沒有能夠檢測手指的類型的任何功能進行掃描

下面是開始捕捉手指的數據

private void StartSyncCapture() { 

    // //// Use thread if you want to show preview, else no need to use 
    // thread. 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      SetTextonuiThread(""); 
      try { 
       FingerData fingerData = new FingerData(); 
       int ret = mfs100.AutoCapture(fingerData, timeout, true, 
         false); 
       if (ret != 0) { 
        SetTextonuiThread(mfs100.GetErrorMsg(ret)); 
       } else { 
        final Bitmap bitmap = BitmapFactory.decodeByteArray(
          fingerData.FingerImage(), 0, 
          fingerData.FingerImage().length); 
        imgFinger.post(new Runnable() { 
         @Override 
         public void run() { 
          imgFinger.setImageBitmap(bitmap); 
          imgFinger.refreshDrawableState(); 
         } 
        }); 

        SetTextonuiThread("Capture Success"); 
        String log = "\nQuality: " + fingerData.Quality() 
          + "\nNFIQ: " + fingerData.Nfiq() 
          + "\nWSQ Compress Ratio: " 
          + fingerData.WSQCompressRatio() 
          + "\nImage Dimensions (inch): " 
          + fingerData.InWidth() + "\" X " 
          + fingerData.InHeight() + "\"" 
          + "\nImage Area (inch): " + fingerData.InArea() 
          + "\"" + "\nResolution (dpi/ppi): " 
          + fingerData.Resolution() + "\nGray Scale: " 
          + fingerData.GrayScale() + "\nBits Per Pixal: " 
          + fingerData.Bpp() + "\nWSQ Info: " 
          + fingerData.WSQInfo(); 
        SetLogOnUIThread(log); 

        //////////////////// Extract ANSI Template 
        byte[] tempData = new byte[2000]; // length 2000 is mandatory 
        byte[] ansiTemplate = null; 
        int dataLen = mfs100.ExtractANSITemplate(fingerData.RawData(), tempData); 
        if(dataLen<=0) 
        { 
         if(dataLen==0) 
         { 
          SetTextonuiThread("Failed to extract ANSI Template"); 
         } 
         else 
         { 
          SetTextonuiThread(mfs100.GetErrorMsg(dataLen)); 
         } 
         return; 
        } 
        else 
        { 
         ansiTemplate = new byte[dataLen]; 
         System.arraycopy(tempData, 0, ansiTemplate, 0, 
           dataLen); 
        } 
        ////////////////////////////////////////////// 

        //////////////////// Extract ISO Image 
        dataLen=0; 
        tempData = new byte[(mfs100.GetDeviceInfo().Width() * mfs100.GetDeviceInfo().Height())+1078]; 
        byte[] isoImage = null; 
        dataLen = mfs100.ExtractISOImage(fingerData.RawData(),tempData); 
        if(dataLen<=0) 
        { 
         if(dataLen==0) 
         { 
          SetTextonuiThread("Failed to extract ISO Image"); 
         } 
         else 
         { 
          SetTextonuiThread(mfs100.GetErrorMsg(dataLen)); 
         } 
         return; 
        } 
        else 
        { 
         isoImage = new byte[dataLen]; 
         System.arraycopy(tempData, 0, isoImage, 0, 
           dataLen); 
        } 
        ////////////////////////////////////////////// 

        //////////////////// Extract WSQ Image 
        dataLen=0; 
        tempData = new byte[(mfs100.GetDeviceInfo().Width() * mfs100.GetDeviceInfo().Height())+1078]; 
        byte[] wsqImage = null; 
        dataLen = mfs100.ExtractWSQImage(fingerData.RawData(),tempData); 

        if(dataLen<=0) 
        { 
         if(dataLen==0) 
         { 
          SetTextonuiThread("Failed to extract WSQ Image"); 
         } 
         else 
         { 
          SetTextonuiThread(mfs100.GetErrorMsg(dataLen)); 
         } 
         return; 
        } 
        else 
        { 
         wsqImage = new byte[dataLen]; 
         System.arraycopy(tempData, 0, wsqImage, 0, 
           dataLen); 
        } 
        ////////////////////////////////////////////// 

        SetData2(fingerData,ansiTemplate,isoImage,wsqImage); 
       } 
      } catch (Exception ex) { 
       SetTextonuiThread("Error"); 
      } 
     } 
    }).start(); 
} 
功能
+0

你好, 你有沒有從概率? 我在過去2周內爲此搜索教程,但找不到任何東西。 請問我可以在哪裏閱讀文檔並找到它的演示。 謝謝。 – Namy

回答

0

您的示例代碼有助於捕獲和提取圖像(WSQ或ISO)或模板(ANSI)。

您必須使用功能將當前指紋與保存的指紋進行匹配。例如使用這種方法:mfs100.MatchISO

+0

@EnvironerInc,它有用嗎? – LaurentY

0

Namy,從捕獲的數據中識別手指的位置(例如LEFT_INDEX,LEFT_THUMB,RIGHT_INDEX等)是不可能的。你需要從你身邊管理手指的位置。