Documentation
Table of contents

Introduction to Dynamsoft Capture Vision

Dynamsoft Capture Vision (DCV) is an aggregating SDK of a series of specific functional products, which cover image capturing, content understanding, result parsing, and interactive workflow.

  1. With the implementation of the Image Source Adapter (ISA) interface, a seamless integration with DCV is possible, allowing easy access to various image sources.
  2. Dynamsoft Barcode Reader (DBR), Dynamsoft Document Normalizer (DDN), and Dynamsoft Label Recognizer (DLR) play crucial roles in reading barcodes, structures, and texts from images.
  3. Dynamsoft Code Parser (DCP) is utilized to extract meaningful fields from text/bytes results, ensuring optimal data parsing capabilities.
  4. To seamlessly access intermediate and final results within the DCV SDK, the Capture Result Receiver (CRR) and Intermediate Result Receiver (IRR) interfaces are provided. After users implement these interfaces and register with DCV, they can obtain the results efficiently and conveniently.
  5. To view and edit the output results, Dynamsoft Camera Enhancer (DCE) provide a suite of robust viewing and editing functions.

DCV powers your software development through the following aspects:

  1. Simplicity with Packable Scenarios
  2. Scalability with Pluggable Components
  3. Flexibility With Customizable Workflows
  4. High Performance With Shared Computations
  5. Bidirectional Interactivity with Intermediate Results

DCV enables you to develop highly customizable applications for barcode reading, label recognition, document board detection, and result parsing. These applications offer enterprise-grade performance and can be tailored to meet your specific business needs.

Functional Products

Dynamsoft Barcode Reader

The barcode decoding feature of DCV is powered by Dynamsoft Barcode Reader (DBR). DBR is a robust SDK that enables users to quickly deploy barcode scanning functionality on all common barcodes such as 1D, QR, PDF417, etc. When working on the barcode scanning, there are various processing parameters available for users to adjust performance in different usage scenarios.

Dynamsoft Label Recognizer

DCV’s label recognition feature is powered by Dynamsoft Label Recognizer (DLR). This powerful SDK is specifically designed to recognize meaningful zonal text or symbols within an image, commonly referred to as a ‘Label’ in this context. DLR is ideal for a wide range of scenarios, including recognizing price tags in supermarkets, inventory labels in warehouses, VIN codes on car windshields, driver licenses, ID cards, and much more. With its advanced capabilities, DLR is an essential component for any application that requires accurate and reliable label recognition.

Dynamsoft Document Normalizer

Dynamsoft Document Normalizer (DDN) is a vital component of the DCV system. This powerful SDK is specifically designed to detect quadrilaterals (or “quads”) in images, such as document or table boundaries, and then perform document normalization on the images within those detected quads. Document normalization includes a range of essential functions, such as border cropping, deskewing, perspective correction, contrast and brightness adjustment, and more. The resulting normalized image can then be used for further processing, including Optical Character Recognition (OCR).

Dynamsoft Code Parser

Dynamsoft Code Parser (DCP) is an SDK that extracts meaningful fields from text/bytes, typically used for post-processing results generated by DBR/DLR. On one hand, it provides built-in support for common scenarios. For example, in the AAMVA driver license scenario, DCP receives the decoded PDF417 barcode result from DBR and then parses and extracts information such as driver’s license number, name and gender etc. In the Passport scenario, DCP receives the MRZ text recognized by DLR and then parses and extracts multiple field information such as passport ID, name, date of birth, and expiration date etc. On the other hand, it supports highly customizable parsing rules through template configuration for specific user scenarios.

Dynamsoft Camera Enhancer

Dynamsoft Camera Enhancer (DCE) is an SDK that includes camera control, camera enhancements and basic UI configuration features.

  • Camera Control: The camera control features include the selection of the camera, open/close the camera, changing the resolution, etc.
  • Camera Enhancements: Advanced features like sharpness filter, sensor filter, enhanced focus, etc. They either improve the quality of camera output or promote the interaction.
  • UI Configuration: A build-in camera view is available for users to display and control the video streaming. Additional UI elements can be added to improve the visual effects of the output results of other Dynamsoft products. For example, the barcode decoding result can be highlighted on the camera view.

Key Features

Simplicity with Packable Scenarios

DCV’s simplicity is reflected in the large number of user scenario-based templates built into the SDK. Users can easily complete specific tasks by simply specifying the name of the built-in template when starting to capture. Some commonly used scenes and built-in template names are listed below:

Scenarios Built-in template
Reading barcodes. “ReadBarcodes_Default”
Recognizing text on labels. “RecognizeTextLines_Default”
Detecting document borders. “DetectDocumentBoundaries_Default”
Detecting and normalize document. “DetectAndNormalizeDocument_Default”

By providing these pre-built templates, DCV simplifies the development process and allows developers to quickly and easily integrate these features into their applications. This makes DCV a highly accessible and user-friendly SDK for developers of all skill levels.

Scalability with Pluggable Components

DCV is not a static system. Different business solutions may require different combinations of product modules. With DCV’s template-based approach, users only need to define the tasks and dependencies in the template file according to the specified rules based on their requirements. Once the template is received by DCV, it automatically parses the template, loads the required modules, and executes the corresponding logic. DCV’s modular design allows users to focus on their specific needs without worrying about the internal details of module loading. This means that users can easily distribute their apps with only the necessary modules, resulting in reduced app size and improved performance. The following are some common requirements and product modules that need to be loaded:

Solution Requirements Required Products
Capture images from a camera. DCE
Capture high-quality documents from a camera. DCE + DDN
Real-time barcode detection from a camera. DCE + DBR
Real-time MRZ recognition from a camera. DCE + DLR + DCP
Real-time Driver’s license recognition from a camera. DCE + DBR + DCP
Real-time recognition of form fields which include barcodes. DCE + DDN + DLR + DBR

Flexibility With Customizable Workflows

DCV’s flexibility is mainly achieved through customizable workflows in the template, which allow developers to configure multiple tasks and their dependencies based on their specific needs. The individual tasks supported by DCV include barcode recognition, text recognition, document detection and normalization, and result parsing. In addition, developers can accomplish more complex tasks by configuring dependencies and conditions between different tasks. If we use “->” to indicate dependencies between tasks, here are some common examples:

Requirements Task dependencies Task execution order description
Recognize Driver’s license DCP’s task->DBR’s task Read the PDF417 barcode => Parse the decoded bytes
Recognize text around the barcode DLR’s task->DBR’s task Read the Barcode => Calculate the rough position of the text and recognize it
Recognize passport MRZ DCP’s task->DLR’s task->DDN’s task Detect passport borders => Recognize MRZ text => Parse the MRZ text

Overall, the ability to combine different functionalities and configure dependencies in the template makes DCV a highly adaptable SDK for creating custom solutions to meet your specific requirements.

High Performance With Shared Computations

DCV’s high performance is reflected in its ability to support parallel computing for multiple tasks, and to share computing results with the same parameters between different tasks.

DCV comes with a built-in task queue and thread pool mechanism, which allows multiple tasks to be executed in parallel as long as there are no dependencies between the tasks and there are available idle threads to use. By leveraging this mechanism, DCV can ensure that tasks are executed efficiently and without any delays, while also ensuring that resources are used effectively.

For applications that require simultaneous recognition of barcodes and text in images, most SDKs typically recognize barcodes and text independently. This means that image-processing operations such as grayscale and binary conversion need to be performed twice, which can be time-consuming and inefficient. However, DCV takes a different approach by parsing templates and executing processing steps only once for same parameters. This significantly improves efficiency and performance, as the same processing steps can be shared between both barcode and text recognition.

Bidirectional Interactivity with Intermediate Results

DCV enables bidirectional interactivity with intermediate results, allowing users to both retrieve these results during execution and modify them to meet their specific needs. DCV offers efficient and easy retrieval of various types of intermediate results, such as grayscale or binary images, detected lines, and contours, through implementation of the Intermediate Result Receiver (IRR) interface and registration with DCV. Additionally, users can make real-time modifications to intermediate results in callback functions at different stages, and the subsequent execution flow will seamlessly integrate these modifications into the DCV process.

Supported Platforms

Platforms Languages
web Web JavaScript
iOS iOS Swift, Objective-C
android Android Java, Kotlin
win Windows C++, C#, Python, Java
linux Linux C++, Python, Java
macos macOS C++, Python, Java

This page is compatible for:

Is this page helpful?

YesYes NoNo

In this article: