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> -u
# Show the image with OpenCV
$ scanmrz <file-name> -u 1
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.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd4b9e028ed175aea8cba8a1873cd11046650b9ce33b3a019674d12b8c5c8ae5 |
|
MD5 | 0ab3d22bea6c702c452abee0a15de0c9 |
|
BLAKE2b-256 | 0421c42baf714af422c8e33e996f3806c300864da0adfec225251a09e9a522b8 |
Hashes for mrz_scanner_sdk-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e68445a1ec771453e5ad2b40d425b01ff231363f95fc6d8e30d6d624577882d |
|
MD5 | 1aa44483e8e126f1acb2fa97aa961406 |
|
BLAKE2b-256 | e3397b142a3b41ffb8fd9fdf0d2ac4ecdc297bb96cd27f114bdf33647214eb9e |
Hashes for mrz_scanner_sdk-1.0.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d003ac161fa7e49a796820f6b835cabe26c97404c4d8aeea86bd3b3f8595c7a |
|
MD5 | adf36cd8b21e5536d6d05099f6d679ef |
|
BLAKE2b-256 | 5004cde24201bed81044dd9af1bf76e90ab8f711f271e0561b3d91737c413dda |
Hashes for mrz_scanner_sdk-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd0d051792432f3a84f6bbb61231aefb6d3ad6b72d1cbf1cfdef7b558c1afb88 |
|
MD5 | 054ad202b7ccbac354dd3c1743e6f48e |
|
BLAKE2b-256 | f78688ccc68aaaa79982ded15f1e1969bfc9b603e8e2e2180703f82fe45f971e |
Hashes for mrz_scanner_sdk-1.0.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f066cb39c1b81a90b4dc9b77b0d270bba4a72ff0d1590878bad51ec3136cad69 |
|
MD5 | d9c5e54248cf52741ee8a19c239bf344 |
|
BLAKE2b-256 | 0beacf493e2a8a017d5c66ac8d2107f4f050a2d080c06c243b77e7f8f6341e0d |
Hashes for mrz_scanner_sdk-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbaa8374264b801f4f60017ae450d990acce270a758d0b8622e48092544e1aad |
|
MD5 | d5c632c6e17c3542fa3de920956b2b0b |
|
BLAKE2b-256 | 1e5853b88d1dfd7d9f3f4a3b425fc532f4c478cf2a4e7f5ebb0f46182f9c4860 |
Hashes for mrz_scanner_sdk-1.0.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 080caeb102c580afa4cbb4bad509d5afd2815f7132b4f8520ee45f7f2354e579 |
|
MD5 | 37d08720b6424801ad38286f365be33f |
|
BLAKE2b-256 | 86227f7514b51091384cb0e7cc360d891ea0fdcc07f48e022c070ab7892c4551 |
Hashes for mrz_scanner_sdk-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 305931fff52afd20bb2fbbe37649d24cbcbc9967dba0cfc74e788cd41b4981f0 |
|
MD5 | d0650fd52d27b26e2caf6c952397b9c2 |
|
BLAKE2b-256 | 7495cdaa86ed4c57739554aba825dbc3eae545593905c0375fc1f6e64a77107f |
Hashes for mrz_scanner_sdk-1.0.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89e1547d3f7d201b4df3c7407c81a8f423611227ccca1d673af932447d04ca29 |
|
MD5 | 637769b74b61e2231d349de114530ac4 |
|
BLAKE2b-256 | 0ef9834f22e78016a6c9bbf412d480a15135419fd95101435ad4dc3e74b21203 |
Hashes for mrz_scanner_sdk-1.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e09f413c9e5635fe4950c527c48b28e793976989d4328ab83d6d33e0b916148 |
|
MD5 | df2f3647629162a1908bc31f921994a0 |
|
BLAKE2b-256 | fd2e351b1f0c48c6b9314e2aff37db5e4efd6961cd26d7eea213d1e8a0ed056a |