2017-05-22 3 views
0

필자는 Mantra MFS100 광학 지문 센서를 가지고 있는데, 스캔중인 손가락 유형을 보여주는 안드로이드 앱을 만들고 싶습니다.만트라 지문 센서로 손가락 유형 감지하기

엄지 또는 색인처럼 어떤 손가락이 스캔되고 있는지 보여줄 수 있도록 응용 프로그램을 만들고 싶습니다.

참고 : 나는 성공적 만트라 MFS100 안드로이드 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

안녕하세요, prob에서 나왔습니까? 지난 2 주 동안이 튜토리얼을 찾고 있지만 아무것도 찾을 수 없습니다. 문서를 읽을 수있는 곳에서 데모를 찾으십시오. 감사합니다. . – Namy

답변

0

샘플 코드는 이미지 (WSQ 또는 ISO) 또는 템플릿 (ANSI)을 캡처하고 추출하는 데 도움이됩니다.

현재 지문과 저장된 지문을 비교하는 기능을 사용해야합니다. 예를 들어이 방법을 사용하는 경우 : mfs100.MatchISO

+0

@ EnvironerInc, 유용합니까? – LaurentY

0

Namy, 캡처 한 데이터에서 손가락의 위치 (예 : LEFT_INDEX, LEFT_THUMB, RIGHT_INDEX 등)를 식별 할 수 없습니다. 당신은 당신 편에서 손가락의 위치를 ​​관리해야합니다.