Skip to content

Commit 702633f

Browse files
Updating side list
1 parent c0aefde commit 702633f

5 files changed

Lines changed: 110 additions & 6 deletions

File tree

_includes/sidelist-programming/programming-android.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<li lang="android"><a class="otherLinkColour">Core Concepts</a>
1111
<ul>
1212
<!-- <li><a href="{{ site.android }}user-guide/concept/barcode-format.html" class="otherLinkColour">Barcode Formats</a></li> -->
13-
<li><a class="otherLinkColour">Capture Vision Architecture</a></li>
13+
<li><a href="{{ site.android }}user-guide/concept/capture-vision-architecture.html" class="otherLinkColour">Capture Vision Architecture</a></li>
1414
<li><a class="otherLinkColour">Input-Process-Output</a></li>
1515
<li><a href="{{ site.android }}user-guide/concept/parameters-and-templates.html" class="otherLinkColour">Parameters, Settings & Templates</a></li>
1616
<li><a href="{{ site.android }}user-guide/concept/understand-barcode-results.html" class="otherLinkColour">Barcode Interpretation</a></li>
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
layout: default-layout
3+
title: Dynamsoft Capture Vision Architecture
4+
description: The introduction of Dynamsoft Capture Vision Architecture for Android.
5+
needAutoGenerateSidebar: true
6+
needGenerateH3Content: true
7+
noTitleIndex: false
8+
---
9+
10+
# Architecture of Dynamsoft Capture Vision
11+
12+
Dynamsoft Capture Vision (DCV) is a powerful SDK architecture designed to adapt to a variety of image-processing scenarios, enabling the extraction of useful information from images. Its structure accommodates both entry-level needs and sophisticated business logic. The design allows developers to quickly build conceptual prototypes within minutes while also supporting complex customizations for more demanding tasks. In this article, we'll take a deep dive into the DCV architecture that makes this flexibility possible.
13+
14+
![DCV Architecture](../../../assets/architecture-modules.png)
15+
16+
## Router - Capture Vision Router (CVR)
17+
18+
![CVR](../../../assets/architecture-router.png)
19+
20+
`CaptureVisionRouter` is the active coordinator in the DCV architecture. The other modules are mostly passive: they do not pull images or run on their own, but wait for CVR to invoke them as part of a capture workflow.
21+
22+
In practice, CVR is responsible for:
23+
24+
- Accepting images from a configured input source.
25+
- Loading and applying templates or simplified settings.
26+
- Scheduling one or more recognition or parsing tasks.
27+
- Returning standard results and optional intermediate results to registered receivers.
28+
29+
---------------
30+
31+
## Input
32+
33+
The standard input abstraction in DCV is `ImageSourceAdapter` (ISA). CVR does not depend on a specific camera or file source. As long as the source follows the ISA contract, CVR can consume it.
34+
35+
This is important because it keeps image acquisition decoupled from recognition. You can start with a built-in input source, or work with your own source without changing the recognition pipeline.
36+
37+
Common input choices include:
38+
39+
- `CameraEnhancer` for scanning from a live camera preview.
40+
- `DirectoryFetcher` for processing images from a folder or batch source.
41+
42+
For most Android apps, `CameraEnhancer` is the default choice because it already integrates camera control, preview, and image enhancement. This is also the setup used in [Build your APP with Foundational APIs](../../foundational-guide.md).
43+
44+
---------------
45+
46+
## Functional modules
47+
48+
- **Dynamsoft Barcode Reader (DBR)**
49+
- **Dynamsoft Code Parser (DCP)**
50+
51+
Functional modules are the execution units in DCV. They do not actively pull images or schedule work by themselves. Instead, they execute a series of tasks arranged by CVR in the selected workflow.
52+
53+
The functional modules in this architecture are:
54+
55+
- **DBR (Dynamsoft Barcode Reader)**: Detects and decodes barcodes from images or video frames.
56+
- **DCP (Dynamsoft Code Parser)**: Parses supported encoded strings into structured, human-readable data.
57+
58+
---------------
59+
60+
## Output - Result Receivers
61+
62+
- Captured Result Receiver
63+
- Intermediate Result Receiver
64+
65+
CVR exposes results through receiver interfaces instead of returning only a single final object. This makes the output side as flexible as the input side.
66+
67+
### Captured Result Receiver
68+
69+
`CapturedResultReceiver` is the standard API for receiving capture results from CVR. In a normal workflow, this is the primary receiver used by the application to obtain the results produced by the configured functional modules.
70+
71+
For example, results returned through `CapturedResultReceiver` can include:
72+
73+
- Barcode results produced by DBR.
74+
- Parsed results produced by DCP.
75+
- Original images.
76+
77+
In other words, `CapturedResultReceiver` is the standard place to receive the main output of the DCV workflow.
78+
79+
### Intermediate Result Receiver
80+
81+
Before a final `CapturedResult` is produced, the algorithm processes the image through a large number of stages. Each stage completes a specific part of the workflow and may generate its own output. These outputs are the intermediate results.
82+
83+
If the output of `CapturedResult` marks the end of processing for the entire image, then the output of an intermediate result marks the end of the corresponding stage. Because intermediate results are produced in real time as the workflow advances, users can inspect the output of a stage, modify it if needed, and let that change affect the final `CapturedResult`.
84+
85+
`IntermediateResultReceiver` is the API used to receive these stage-level results. It is mainly used in advanced scenarios where you need visibility into the internal stages or want to introduce additional logic into the processing flow.
86+
87+
Use it when you want to:
88+
89+
- Trace and observe the result of each stage when troubleshooting recognition issues.
90+
- Manually intervene in the processing flow and introduce extra logic to improve the recognition result.
91+
- Obtain additional information that is not available through `CapturedResultReceiver`.
92+
93+
If you mainly care about the standard outputs of the workflow, `CapturedResultReceiver` is usually enough. If you need more processing-stage data, combine it with intermediate results. Related topics:
94+
95+
- [Understanding Barcode Results](understand-barcode-results.md)
96+
- [Get Original Image](../capabilities/get-original-image.md)
97+
98+
---------------
99+
100+
## Next Steps
101+
102+
- Read [Parameters, Settings & Templates](parameters-and-templates.md) to understand how workflows are configured.
103+
- Read [Understanding Barcode Results](understand-barcode-results.md) to understand what CVR returns.
104+
- Read [Build your APP with Foundational APIs](../../foundational-guide.md) to see this architecture mapped to Android code.
105+
- Read [Configure Simplified Settings](../capabilities/config-simplified-settings.md) or [Initialize Customized Templates](../capabilities/init-customized-template.md) when you are ready to customize the pipeline.
106+
107+
---------------

programming/android/user-guide/concept/parameters-and-templates.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ needAutoGenerateSidebar: true
1010

1111
# Parameters, Settings & Templates
1212

13-
- `Parameters`: Algorithm `parameters` that determine how images are processed.
14-
- `Settings`: APIs that let you quickly access `parameters`.
15-
- `Templates`: JSON objects that can define all available `parameters`.
16-
- `Preset Templates`: Quick-start templates. Available via `EnumPresetTemplate`.
17-
- `Customized Templates`: Customized templates in a JSON file.
13+
- `Templates`: JSON objects that can define all algorithm `parameters` for customizing performance.
14+
- `Settings`: A subset of Template parameters that can be quickly accessed via APIs.
1815

1916
### When to Use Settings
2017

23.9 KB
Loading
44 KB
Loading

0 commit comments

Comments
 (0)