←Select platform

IDCardReader Class

Summary

ID Card Reader

Syntax

C#
VB
C++
public class IDCardReader
Public Class IDCardReader
public ref class IDCardReader

Remarks

IDCardReader uses LEADTOOLS OCR technology to parse data from identification cards. Currently, this engine supports US and EU driver license cards.

The engine is designed for progressive recognition from a live camera capture. Frames are fed and the engine will try to extract as much data from each frame as possible and in the process will combine results from the most accurate recognition data till all the required fields are read. The user can stop the processing at any time if enough data is required, or continue till the engine finishes reading all the data. The engine might read all the data from the first frame if the image contains very clear data. Therefore, the engine also supports reading the ID data (all or partial) from a single frame.

The engine returns the results in an IDCardResults type which contains the following data:

Person birth and card issue and expire dates in BirthDate, IssueDate and ExpireDate Card ID number in IDNumber Country or state name in Country

Typical workflow is as follows:

Start by creating an engine instance and initialize it. This is typically done in the application startup code.

void Startup() { // Create the OCR engine to be used with this demo IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false); ocrEngine.Startup(null, null, null, PATHTO_OCR_RUNTIME); // Create an ID card reader IDCardReader cardReader = new IDCardReader(ocrEngine); }

Next, assume the user interface contains a button to start capturing from the camera and begin recognition. Insert the following code there to begin a new capture process:

void StartRecognition() { // Start new recognition process cardReader.ResetRecognitionData(); // Start capturing from the camera StartCameraCapture(); }

During each frame acquired by the camera, create a RasterImage instance from it and send it to the engine using the following code. Note the check for the result of ProcessFrame to indicate when reading is finished:

void ProcessCameraFrame(RasterImage frameImage) { // Process this frame if (cardReader.ProcessFrame(frameImage)) { // The engine is done, grab the results IDCardResults results = cardReader.Results; // Stop capturing from the camera StopCameraCapture(); // Display the results to the user or continue further processing DisplayOrProcessResults(results); } }

Depending on the application, some of the data may only be required, for example, only the ID. Therefore, the application can use code similar to the following to perform the recognition:

void ProcessCameraFrame(RasterImage frameImage) { // Process this frame cardReader.ProcessFrame(frameImage); // See if have a valid ID number FieldResult idNumber = cardReader.Results.IDNumber; if (idNumber.Confidence > 75) // Stop when we have 75% or above accuracy { // We are done, grab the results string idNumberValue = idNumber.Text; // Stop captruing from the camera StopCameraCapture(); // Display the results to the user or continue further processing DisplayOrProcessResults(idNumberValue); } }

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Forms.Commands Assembly
Click or drag to resize