Machine readable zone (MRZ) reading SDK for passport, Visa, ID card and travel document.
Project description
Python Extension: MRZ Scanner SDK
The project is a Python-C++ binding of Dynamsoft Label Recognizer. It aims to help developers build Python MRZ scanner apps on Windows and Linux.
License Key
Get a 30-day FREE trial license to activate the SDK.
Supported Python Edition
- Python 3.x
Install Dependencies
pip install mrz opencv-python
Command-line Usage
$ scanmrz <file-name> -l <license-key>
# Show the image with OpenCV
$ scanmrz <file-name> -u 1 -l <license-key>
Quick Start
import mrzscanner
from mrz.checker.td1 import TD1CodeChecker
from mrz.checker.td2 import TD2CodeChecker
from mrz.checker.td3 import TD3CodeChecker
from mrz.checker.mrva import MRVACodeChecker
from mrz.checker.mrvb import MRVBCodeChecker
def check(lines):
try:
td1_check = TD1CodeChecker(lines)
if bool(td1_check):
return "TD1", td1_check.fields()
except Exception as err:
pass
try:
td2_check = TD2CodeChecker(lines)
if bool(td2_check):
return "TD2", td2_check.fields()
except Exception as err:
pass
try:
td3_check = TD3CodeChecker(lines)
if bool(td3_check):
return "TD3", td3_check.fields()
except Exception as err:
pass
try:
mrva_check = MRVACodeChecker(lines)
if bool(mrva_check):
return "MRVA", mrva_check.fields()
except Exception as err:
pass
try:
mrvb_check = MRVBCodeChecker(lines)
if bool(mrvb_check):
return "MRVB", mrvb_check.fields()
except Exception as err:
pass
return 'No valid MRZ information found'
# set license
mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
# initialize mrz scanner
scanner = mrzscanner.createInstance()
# load MRZ model
scanner.loadModel(mrzscanner.get_model_path())
print('')
# decodeFile()
s = ""
results = scanner.decodeFile("images/1.png")
for result in results:
print(result.text)
s += result.text + '\n'
print('')
print(check(s[:-1]))
print('')
Methods
-
mrzscanner.initLicense('YOUR-LICENSE-KEY')
# set the license globallymrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
-
mrzscanner.createInstance()
# create a MRZ scanner instancescanner = mrzscanner.createInstance()
-
scanner.loadModel(<model configuration file>)
# load MRZ modelscanner.loadModel(mrzscanner.get_model_path())
-
decodeFile(<image file>)
# recognize MRZ from an image fileresults = scanner.decodeFile(<image-file>) for result in results: print(result.text)
-
decodeMat(<opencv mat data>)
# recognize MRZ from OpenCV Matimport cv2 image = cv2.imread(<image-file>) results = scanner.decodeMat(image) for result in results: print(result.text)
How to Build the Python MRZ Scanner Extension
-
Create a source distribution:
python setup.py sdist
-
setuptools:
python setup.py build python setup.py develop
-
Build wheel:
pip wheel . --verbose # Or python setup.py bdist_wheel
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for mrz_scanner_sdk-1.0.5-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0adabb2a054776b56c1d5123fba893a795579f38f5aff8b4ad697feb1f4d695c |
|
MD5 | d67791b6ceb011e976ba4af2529191bb |
|
BLAKE2b-256 | 4e974aee3199a4e0b254a963606e049707a5bb95d013b2f1d2b3036c4e84454d |
Hashes for mrz_scanner_sdk-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b43642a595e86858f834a6fdb3d4b2623c21fd12e89d999619be9f0175f2ba80 |
|
MD5 | 30a04564f75cb6bee12e5cfcc1d9c7c9 |
|
BLAKE2b-256 | ed8f9ded0c1c847fe2bbeb0d64f5e5671a0811d13a0be73a7ac09bad0187a064 |
Hashes for mrz_scanner_sdk-1.0.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7368186ff5a02c8ed894a62cf54b150f0f444224cc1ffb09a654d907ee8bee7c |
|
MD5 | 253eee8d56f1952fe0426fc690df1e8a |
|
BLAKE2b-256 | 390e6ad2b260275665137b72c4e8beeff5dd86b59651a18ba6835edd06f3e309 |
Hashes for mrz_scanner_sdk-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09bdbdfe61b21b670783774234a9072023fa0a24906148b0899b2aa9f6850ef2 |
|
MD5 | f333cfd8febc458c62e098b6e29a80c8 |
|
BLAKE2b-256 | cb4da6c0fd768f56c0d950aaa08ea0f04d9cab395c95b21971a1024d62f328a4 |
Hashes for mrz_scanner_sdk-1.0.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39fef512c7bcb695e23d6bdfe72927fd474491d38e3eb95200e221e20e7c4104 |
|
MD5 | 48b04c052c942eaf1f1748ebbfe3ca4c |
|
BLAKE2b-256 | 5c77953041f76368ceaaa28abee5f127fd31d4211b524ed5e25b9589ce798e40 |
Hashes for mrz_scanner_sdk-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88d56953bfc001647b75125f115983c59a781caf338bbff0b00cc22748a9f1ab |
|
MD5 | b8d1ec0647b46fa29e155931deb3967c |
|
BLAKE2b-256 | c6bcb5c8d33a65105b177b2d7ea4a6b0f2a208377af6938bdda221fa4cfb1817 |
Hashes for mrz_scanner_sdk-1.0.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba5af531a34d75b8170427408fb368399ffca9e70b7ac4208fbde3dddb64634f |
|
MD5 | faeaaa8979e1426736526d2cbf474b26 |
|
BLAKE2b-256 | e7de9756912b1e1243248b8868a701d6a95b3e7e06f7725e48c4da2b981b6a0c |
Hashes for mrz_scanner_sdk-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d3942fa1afbfefe670352eb4bea3f5c6702565a447183b219d39e1498ff830e |
|
MD5 | d4c744ad602694273570d1377a450bc8 |
|
BLAKE2b-256 | 5b5fe4cf116951752b9419fd458e3d67f132937af297545ccf84af0655ab398a |
Hashes for mrz_scanner_sdk-1.0.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d13feab7660df7f8edf0f52081d72c316d165686daca7c5840a14eaa36691182 |
|
MD5 | afa5e27eaad7d05171eb56a5ea59a6d4 |
|
BLAKE2b-256 | b0bbccefacb361b33b9028a360c5ccb9fca1ab4f842dcd727a62606db5c31a93 |
Hashes for mrz_scanner_sdk-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac9b061159126d5980018c056130eac99fed8e6b09118c37ae8d0aa221c71b0b |
|
MD5 | 7a77e34c32a183f4cb99a6e4138b926f |
|
BLAKE2b-256 | de33edf2d9159fdb43ce642a1357880014332f3e26b8a2aa3501482b0f2ad5a1 |