User Guide for Document Scanner with Python
In this guide, you will learn step by step on how to build a document scanner solution with Dynamsoft Capture Vision SDK using python.
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 capture a document from an image file.
Create a New Project
Create a new source file named document_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()
Detect and Save the Normalized Document
- Apply detection and normalization for an image file.
result = cvr.capture("[PATH-TO-THE-IMAGE-FILE]", EnumPresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT.value)
Please change the
[PATH-TO-THE-IMAGE-FILE]
to a real image file path.
- Save the normalized result as an image file
if result.get_error_code() != EnumErrorCode.EC_OK:
print("Error:", result.get_error_code(), result.get_error_string())
normalized_images_result = result.get_normalized_images_result()
if normalized_images_result is None or len(normalized_images_result.get_items()) == 0:
print("No document detected.")
else:
items = normalized_images_result.get_items()
print("Normalized", len(items), "documents.")
for index,item in enumerate(normalized_images_result.get_items()):
out_path = "normalizedResult_" + str(index) + ".png"
image_manager = ImageManager()
image = item.get_image_data()
if image != None:
errorCode, errorMsg = image_manager.save_to_file(image, out_path)
if errorCode == 0:
print("Document " + str(index) + " file: " + out_path)
Build and Run the Project
- Save the ``document_scanner.py` file.
- Start terminal or command prompt and change to the target directory where
document_scanner.py
located in. - Run the command
python document_scanner.py
- You will see the output message in the console like
Normalized 1 documents.
Document 0 file: XXX