User Guide for MRZ Scanner with Python
In this guide, you will learn step by step on how to build a MRZ scanner solution with Dynamsoft Capture Vision SDK using python.
About the Solution
With the MRZ Scanner, you can extract the MRZ string from an image of a passport, visa, or ID card, and then parse it to retrieve data such as the first name, last name, document number, nationality, date of birth, expiration date, and personal number, converting them into human-readable fields.
System Requirements
To find out whether your environment is supported, please read the System Requirements.
Installation
Start terminal or command prompt to run the following command:
pip install dynamsoft_capture_vision_bundle
Build Your Own Application
In this section, we’ll walk through the key steps needed to build an application that reads the machine-readable zone (MRZ) from an image file.
Create a New Project
Create a new source file named mrz_scanner.py
.
Include the Library
Import package dynamsoft_capture_vision_bundle
in the source file.
from dynamsoft_capture_vision_bundle import *
Initialize the License Key
Add the following code inside the __main__
method to initialize the license for using the SDK in the application:
errorCode, errorMsg = LicenseManager.init_license("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9")
if errorCode != EnumErrorCode.EC_OK and errorCode != EnumErrorCode.EC_LICENSE_CACHE_USED:
print("License initialization failed: ErrorCode:", errorCode, ", ErrorString:", errorMsg)
else:
# codes from following steps
The string “DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9” here is a free public trial license. Note that network connection is required for this license to work. When it expires, you can request a 30-day free trial license from the Customer Portal.
Create a CaptureVisionRouter Instance
cvr = CaptureVisionRouter()
Invoke the Capturing
result = cvr.capture("[PATH-TO-THE-IMAGE-FILE]", "ReadPassportAndId")
Please change the
[PATH-TO-THE-IMAGE-FILE]
to a real image file path.
Filter and Get MRZ Details
if result.get_error_code() != EnumErrorCode.EC_OK:
print("Error:", result.get_error_code(), result.get_error_string())
parsed_result = result.get_parsed_result()
if parsed_result is None or parsed_result.get_items() == 0:
print("No MRZ detected.")
else:
items = parsed_result.get_items()
print("Detected", len(items), "MRZ Result(s).")
for index,item in enumerate(items):
print("Result", index+1)
print("DocumentType:", item.get_code_type())
if item.get_field_value("passportNumber"):
print("DocumentID:", item.get_field_value("passportNumber"))
else:
print("DocumentID:", item.get_field_value("documentNumber"))
# get more field values
Build and Run the Project
- Save the ``mrz_scanner.py` file.
- Start terminal or command prompt and change to the target directory where
mrz_scanner.py
located in. - Run the command
python mrz_scanner.py
- You will see the output message in the console like
Detected 1 MRZ Result(s).
Result 1
DocumentType: XXX
DocumentID: XXX