High Accuracy OCR, Face Recognition & Liveness
  • Language
    • Overview
    • Android
      • Project Setup
      • Accura OCR
      • Accura Face Match
      • Accura Liveness
    • iOS
      • Project Setup
        • Check Pod Size
      • Accura OCR
        • Setup Accura License and Configurations
        • Set Camera View
      • Accura Face Match
      • Accura liveness
    • Flutter
      • Project Setup
      • Android Setup
        • Adding Permissions, Packaging options and Auth Token
        • Adding License
      • iOS Setup
        • Installing pods and Adding Permissions.
        • Adding License
      • Functions
        • Fetching Details From License
        • Setting Configurations, Error messages, Camera customization
        • OCR
        • MRZ
        • Barcode and Bankcard
        • Facematch and Liveness
    • Cordova
      • Project Setup
      • Android Setup
        • Packaging options and Auth Token
        • Adding License
      • iOS Setup
        • Installing pods
        • Adding License
      • Functions
        • Fetching Details From License
        • Setting Title & Error messages
        • OCR
        • MRZ
        • Barcode & Bankcard
        • Facematch & Liveness
    • React-Native
      • Project Setup
      • Android Setup
        • Adding Permissions, Packaging options and Auth Token
        • Adding License
      • iOS Setup
        • Adding Permissions.
        • Adding License
      • Functions
        • Fetching License Details
        • Setting Configurations, Error messages, Camera customization
        • OCR
        • MRZ
        • Barcode & Bankcard
        • Facematch & Liveness
    • Xamarin
      • Project Setup
      • Android Setup
        • Adding Permission & Packages
        • Adding License
      • iOS Setup
        • Adding Permissions
        • Adding License
      • Functions
        • Fetching License details
        • Setup custom messages
        • OCR
        • MRZ
        • Barcode & Bankcard
        • Facematch & Liveness
    • Docker
      • MRZ
      • FaceMatch
      • Face Liveness
      • ID Liveness
      • ID Forgery
    • Web API
      • Accura OCR
      • Accura Face Match
      • Accura Face Liveness
      • Accura ID Liveness
  • Solutions
    • MRZ
      • Android
        • SDK Setup
        • Setup Accura MRZ
      • iOS
        • SDK Setup
        • Setup Accura MRZ
      • Flutter
        • SDK Setup
        • Setup Accura MRZ
      • React Native
        • SDK Setup
        • Setup Accura MRZ
      • Cordova
        • SDK Setup
        • Setup Accura MRZ
    • OCR
      • Android
        • SDK Setup
        • Setup Accura OCR
      • iOS
        • SDK Setup
        • Setup Accura OCR
      • Flutter
        • SDK Setup
        • Setup Accura OCR
      • React Native
        • SDK Setup
        • Setup Accura OCR
      • Cordova
        • SDK Setup
        • Setup Accura OCR
    • Barcode with PDF417
      • Android
        • SDK Setup
        • Setup Accura Barcode with PDF417
      • iOS
        • SDK Setup
        • Setup Accura Barcode with PDF417
      • Flutter
        • SDK Setup
        • Setup Accura Barcode with PDF417
      • React Native
        • SDK Setup
        • Setup Accura Barcode with PDF417
      • Cordova
        • SDK Setup
        • Setup Accura Barcode with PDF417
    • Face Match
      • Android
        • Setup SDK
        • Setup Accura Face Match
      • iOS
        • Setup SDK
        • Setup Accura Face Match
      • Flutter
        • Setup SDK
        • Setup Accura Face Match
      • React Native
        • Setup SDK
        • Setup Accura Face Match
      • Cordova
        • Setup SDK
        • Setup Accura Face Match
    • Face Liveness (2D / Silent / Passive)
      • Android
        • SDK Setup
        • Setup Accura Face Liveness
      • iOS
        • SDK Setup
        • Setup Accura Face Liveness
      • Flutter
        • Setup SDK
        • Setup Accura Face Liveness
      • React Native
        • SDK Setup
        • Setup Accura Face Liveness
      • Cordova
        • Setup SDK
        • Setup Accura Face Liveness
    • Face Liveness (3D / Face Movement)
      • Android
        • SDK Setup
        • Setup Accura Face Liveness
      • iOS
        • SDK Setup
        • Setup Accura Face Liveness
      • Flutter
        • Setup SDK
        • Setup Accura Face Liveness
      • React Native
        • SDK Setup
        • Setup Accura Face Liveness
      • Cordova
        • Setup SDK
        • Setup Accura Face Liveness
    • Face Liveness with Voice Authentication
      • Android
        • SDK Setup
        • Setup Accura Face Liveness
      • iOS
        • SDK Setup
        • Setup Accura Face Liveness
      • Flutter
        • Setup SDK
        • Setup Accura Face Liveness
      • React Native
        • SDK Setup
        • Setup Accura Face Liveness
      • Cordova
        • Setup SDK
        • Set up Accura Face Liveness
    • ⁠Document Liveness and ID Forgery
      • Android
        • SDK Setup
        • Setup Accura OCR
      • iOS
        • SDK Setup
        • Setup Accura OCR
      • Flutter
        • SDK Setup
        • Setup Accura OCR
      • React Native
        • SDK Setup
        • Setup Accura OCR
      • Cordova
        • SDK Setup
        • Setup Accura OCR
    • NFC scanner
      • Android
        • SDK Setup
        • Setup Accura NFC
      • iOS
        • SDK Setup
        • Setup Accura NFC
      • Flutter
        • SDK Setup
        • Setup Accura NFC
      • React Native
        • SDK Setup
        • Setup Accura NFC
      • Cordova
        • SDK Setup
        • Setup Accura NFC
    • Voice Biometrics
      • Android
        • Setup Voice Verification
      • iOS
        • Setup Voice Verification
      • Flutter
        • Setup Voice Verification
      • React Native
        • Setup Voice Verification
      • Cordova
        • Setup Voice Verification
    • Finger Biometrics
      • Android
        • SDK Setup
        • Setup Accura Finger
      • iOS
        • SDK Setup
        • Setup Accura Finger
      • Flutter
        • SDK Setup
        • Setup Accura Finger
      • React Native
        • SDK Setup
        • Setup Accura Finger
      • Cordova
        • SDK Setup
        • Setup Accura Finger
    • MICR Cheque scanner
      • Android
        • SDK Setup
        • Setup Accura MICR
      • iOS
        • SDK Setup
        • Setup Accura MICR
      • Flutter
        • SDK Setup
        • Setup Accura MICR
      • React Native
        • SDK Setup
        • Setup Accura MICR
      • Cordova
        • SDK Setup
        • Setup Accura MICR
Powered by GitBook
On this page
  • Add license file in to your project.
  • To initialize sdk on app start:
  • Set CameraView
  1. Solutions
  2. Finger Biometrics
  3. iOS

Setup Accura Finger

PreviousSDK SetupNextFlutter

Last updated 1 month ago

Add license file in to your project.

key.license

To generate your Accura license contact


To initialize sdk on app start:

import AccuraFinger
    var accuraFingerWrapper = AccuraFingerWrapper()
    let sdkModel = self.accuraFingerWrapper.loadEngine(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String)
    
    if(sdkModel != nil){
        if sdkModel!.i > 0 {
            print(sdkModel?.isFingerEnable ?? false)
        }
    }

Set CameraView

Important Grant Camera and storage Permission. supports Landscape Camera

import AccuraFinger
import AVFoundation
var accuraFingerWrapper: AccuraFingerWrapper? = nil
var bothThumbStoreImages: [UIImage] = []
var leftThumbImages: [UIImage] = []
var rightThumbImages: [UIImage] = []
var leftFingerImages: [UIImage] = []
var rightFingerImages: [UIImage] = []

override func viewDidLoad() {
	super.viewDidLoad()
    self.accuraFingerWrapper = AccuraFingerWrapper.init(delegate: self, andImageView: self._imageView, scanType: Int32(scanType)/*set 0 for verify and 1 for Enroll*/, whichFinger: Int32(whichFinger)/*set 0 for left Finger and 1 for right finger and  2 for left thumb and  3 for right thumb and  4 for both thumb)
    
}

override func viewDidAppear(_ animated: Bool) {
	super.viewDidAppear(animated)
    self.accuraFingerWrapper?.startCamera()
}

extension ViewController: VideoCameraWrapperDelegate{
// It gets call on every Frame
    func processedImage(_ image: UIImage!) {
        
    }

//It gets rect of the finger
    func array(ofRect arrayOfRect: NSMutableDictionary!) {
    
}

//It gets rect of the thumb
func array(ofRectThumb arrayOfRect: NSMutableDictionary!) {
    
}

//It gets Enroll images of finger
func fingerImages(_ index: UIImage!, index2: UIImage!, index3: UIImage!, middle: UIImage!, middle2: UIImage!, middle3: UIImage!, ring: UIImage!, ring2: UIImage!, ring3: UIImage!, little: UIImage!, little2: UIImage!, little3: UIImage!, imageArr ImageArr: NSMutableArray!) {

            if self.whichFinger == 0 {
                leftFingerImages.append(contentsOf: [index, index2, index3, middle, middle2, middle3, ring, ring2, ring3, little, little2, little3])
            }else{
                rightFingerImages.append(contentsOf: [index, index2, index3, middle, middle2, middle3, ring, ring2, ring3, little, little2, little3])
            }
}

//It gets Enroll images of thumb
func thumbImages(_ thumb1: UIImage!, thumb2: UIImage!, thumb3: UIImage!, imageArr ImageArr: NSMutableArray!) {

        if(whichFinger == 2){
            leftThumbImages = [thumb1, thumb2, thumb3]
        }else{
            rightThumbImages = [thumb1, thumb2, thumb3]
        }

}

//It gets Enroll images of both thumb
func bothThumbImages(_ lthumb1: UIImage!, lThumb2 lthumb2: UIImage!, lThumb3 lthumb3: UIImage!, rThumb1 rthumb1: UIImage!, rThumb2 rthumb2: UIImage!, rThumb3 rthumb3: UIImage!, imageArr ImageArr: NSMutableArray!) {
        
    bothThumbStoreImages= [lthumb1, lthumb2, lthumb3, rthumb1, rthumb2, rthumb3]

}

//It gets Verfy images of finger
func verifyImages(_ index: UIImage!, middle: UIImage!, ring: UIImage!, little: UIImage!, imageArr ImageArr: NSMutableArray!){
        
        let arrImage1:[UIImage] = [index,middle,ring,little]
        
        var verifyImageTemplate:[String] = []
        
        for img in arrImage1 {
            verifyImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
        }

        
        var storeImageTemplate:[String] = []

        if(whichFinger == 0){
            for img in leftFingerImages {
                storeImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
            }
        }else{
            
            for img in rightFingerImages {
                storeImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
            }
        }

        let isValid = accuraFingerWrapper?.getFingerScore(storeImageTemplate[0], fingerIndexE2: storeImageTemplate[1], fingerIndexE3: storeImageTemplate[2],
        fingerMiddleE1: storeImageTemplate[3],fingerMiddleE2: storeImageTemplate[4],fingerMiddleE3: storeImageTemplate[5],fingerRingE1: storeImageTemplate[6],
        fingerRingE2: storeImageTemplate[7],fingerRingE3: storeImageTemplate[8],fingerLittleE1: storeImageTemplate[9],fingerLittleE2: storeImageTemplate[10], 
        fingerLittleE3:storeImageTemplate[11],fingerIndexV: verifyImageTemplate[0],fingerMiddleV: verifyImageTemplate[1],fingerRingV: verifyImageTemplate[2],
        fingerLittleV: verifyImageTemplate[3])
}

//It gets Verfy images of  both thumb
func verifyThumbImages(_ thumbLeft: UIImage!, thumbRight: UIImage!, imageArr ImageArr: NSMutableArray!) {

        var arrImage1:[UIImage] = [thumbLeft,thumbRight]
        
        var verifyImageTemplate:[String] = []
        
        for img in arrImage1 {
            verifyImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
        }
        
        var storeImageTemplate:[String] = []
            
        for img in bothThumbStoreImages {
            storeImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
        }
        
            
        let isValid = accuraFingerWrapper?.getBothThumbScore(storeImageTemplate[0], thumbEL2: storeImageTemplate[1], thumbEL3: storeImageTemplate[2],
         thumbER1: storeImageTemplate[3], thumbER2: storeImageTemplate[4], thumbER3: storeImageTemplate[5], thumbVL: verifyImageTemplate[0], 
         thumbVR: verifyImageTemplate[1])
    
}

//It gets Verfy images of thumb
func verifyThumbImages(_ thumb: UIImage!, imageArr ImageArr: NSMutableArray!) {

        var verifyImageTemplate:[String] = []
        
        verifyImageTemplate.append(accuraFingerWrapper?.getTemplate(thumb) ?? "")
        
        var storeImageTemplate:[String] = []
        var leftThumbScores:[Double] = []
        var rightThumbScores:[Double] = []
        
        if(whichFinger == 2){
            for img in leftThumbImages {
                storeImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
            }
        }else{
            for img in rightThumbImages {
                storeImageTemplate.append(accuraFingerWrapper?.getTemplate(img) ?? "")
            }
        }
        
        let isValid = accuraFingerWrapper?.getThumbScore(storeImageTemplate[0], thumbE2: storeImageTemplate[1], thumbE3: storeImageTemplate[2], 
        thumbV: verifyImageTemplate[0])
}

//It gets Error Message
func onUpdateProcess(_ msg: String!){
    
}

//It gets Finger Failure error
func biffurcationError(_ arrError: NSMutableArray!) {
    
}

//It gets Finger Acception result
func fingerAccepted(_ finger1: Bool, finger2: Bool, finger3: Bool, finger4: Bool, fingerBif: String!, fingerDist: String!,fingerEnd:String!, reset: Bool) {
    
}

//It gets Thumb Acception result
func thumbAccepted(_ thumb1: Bool, reset: Bool) {

}

//It gets Both Thumb Acception result
func bothThumbAccepted(_ thumb1: Bool, thumb2: Bool, reset: Bool) {
    
}

//It gets called for handling completion bar
func finger1() {}
func finger2() {}
func finger3() {}
func finger4() {}
sales@accurascan.com