Setup Accura MRZ
To initialize sdk on app start:
import AccuraMRZ
var accuraCameraWrapper: AccuraCameraWrapper? = nil
var arrCountryList = NSMutableArray()
accuraCameraWrapper = AccuraCameraWrapper.init()
let sdkModel = accuraCameraWrapper.loadEngine(your PathForDirectories)
if (sdkModel.i > 0) {
if(sdkModel!.isMRZEnable) {
self.arrCountryList.add("All MRZ")
// ID MRZ
// Visa MRZ
// Passport MRZ
// All MRZ
}
}
Update filters config like below.
Call this function after initialize sdk if license is valid(sdkModel.i > 0)
Set Blur Percentage to allow blur on document
// 0 for clean document and 100 for Blurry document
self.accuraCameraWrapper?.setBlurPercentage(60/*blurPercentage*/)
Set Blur Face Percentage to allow blur on detected Face
// 0 for clean face and 100 for Blurry face
accuraCameraWrapper?.setFaceBlurPercentage(80/*faceBlurPercentage*/)
Set Glare Percentage to detect Glare on document
// Set min and max percentage for glare
accuraCameraWrapper?.setGlarePercentage(6/*minPercentage*/, 98/*maxPercentage*/)
Set Photo Copy to allow photocopy document or not
// Set allow photocopy document or not
accuraCameraWrapper?.setCheckPhotoCopy(false/*isCheckPhotoCopy*/)
Set Hologram detection to verify the hologram on the face
// true to check hologram on face
accuraCameraWrapper?.setHologramDetection(true/*isDetectHologram*/)
Set Low Light Tolerance to allow lighting to detect documant
// 0 for full dark document and 100 for full bright document
accuraCameraWrapper?.setLowLightTolerance(10/*lowlighttolerance*/)
Set motion threshold to detect motion on camera document
// 1 - allows 1% motion on document and
// 100 - it can not detect motion and allow document to scan.
accuraCameraWrapper?.setMotionThreshold(25/*setMotionThreshold*/)
Sets camera Facing front or back camera
accuraCameraWrapper?.setCameraFacing(.CAMERA_FACING_BACK)
Flip camera
accuraCameraWrapper?.switchCamera()
Set Front/Back Side Scan
accuraCameraWrapper?.cardSide(.FRONT_CARD_SCAN)
Set CameraView
import AccuraMRZ
import AVFoundation
var accuraCameraWrapper: AccuraCameraWrapper? = nil
override func viewDidLoad() {
super.viewDidLoad()
let status = AVCaptureDevice.authorizationStatus(for: .video)
if status == .authorized {
accuraCameraWrapper = AccuraCameraWrapper.init(delegate: self, andImageView: /*setImageView*/ _imageView, andLabelMsg: */setLable*/ lblOCRMsg, andurl: */your PathForDirectories*/ NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String, cardId: /*setCardId*/ Int32(0!), countryID: /*setcountryid*/ Int32(0!), isScanOCR:/*Bool*/ false, andLabelMsgTop:/*Lable*/ _lblTitle, andcardName:/*string*/ docName, andcardType: Int32(cardType), andMRZDocType: /*SetMRZDocumentType*/ Int32(MRZDocType!/*0 = OtherMRZ, 1 = PassportMRZ, 2 = IDMRZ, 3 = VisaMRZ*/))
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
accuraCameraWrapper?.startCamera()
}
override func viewWillDisappear(_ animated: Bool) {
accuraCameraWrapper?.stopCamera()
accuraCameraWrapper = nil
super.viewWillDisappear(animated)
}
extension ViewController: VideoCameraWrapperDelegate{
// it calls continues when scan cards
func processedImage(_ image: UIImage!) {
image:- get camara image.
}
// it call when license key wrong otherwise didnt get key
func recognizeFailed(_ message: String!) {
message:- message is a set alert message.
}
// it calls when get MRZ data
func recognizeSucceed(_ scanedInfo: NSMutableDictionary!, recType: RecType, bRecDone: Bool, bFaceReplace: Bool, bMrzFirst: Bool, photoImage: UIImage, docFrontImage: UIImage!, docbackImage: UIImage!) {
scanedInfo :- get MRZ data.
photoImage:- get a document face Image.
docFrontImage:- get document frontside image.
docbackImage:- get document backside image.
}
// it calls when recieve error message
func reco_msg(_ messageCode: String!) {
var message = String()
if messageCode == ACCURA_ERROR_CODE_MOTION {
message = "Keep Document Steady";
} else if(messageCode == ACCURA_ERROR_CODE_DOCUMENT_IN_FRAME) {
message = "Keep document in frame";
} else if(messageCode == ACCURA_ERROR_CODE_BRING_DOCUMENT_IN_FRAME) {
message = "Bring card near to frame";
} else if(messageCode == ACCURA_ERROR_CODE_PROCESSING) {
message = "Processing...";
} else if(messageCode == ACCURA_ERROR_CODE_BLUR_DOCUMENT) {
message = "Blur detect in document";
} else if(messageCode == ACCURA_ERROR_CODE_FACE_BLUR) {
message = "Blur detected over face";
} else if(messageCode == ACCURA_ERROR_CODE_GLARE_DOCUMENT) {
message = "Glare detect in document";
} else if(messageCode == ACCURA_ERROR_CODE_HOLOGRAM) {
message = "Hologram Detected";
} else if(messageCode == ACCURA_ERROR_CODE_DARK_DOCUMENT) {
message = "Low lighting detected";
} else if(messageCode == ACCURA_ERROR_CODE_PHOTO_COPY_DOCUMENT) {
message = "Can not accept Photo Copy Document";
} else if(messageCode == ACCURA_ERROR_CODE_FACE) {
message = "Face not detected";
} else if(messageCode == ACCURA_ERROR_CODE_MRZ) {
message = "MRZ not detected";
} else if(messageCode == ACCURA_ERROR_CODE_PASSPORT_MRZ) {
message = "Passport MRZ not detected";
} else if(messageCode == ACCURA_ERROR_CODE_ID_MRZ) {
message = "ID MRZ not detected"
} else if(messageCode == ACCURA_ERROR_CODE_VISA_MRZ) {
message = "Visa MRZ not detected"
}else {
message = message;
}
print(message)
}
Last updated