Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,19 @@ ddn_flutter_api: /document-normalizer/docs/mobile/programming/flutter/api-refere
dlr_flutter: /label-recognition/docs/mobile/programming/flutter/
dlr_flutter_api: /label-recognition/docs/mobile/programming/flutter/api-reference/

dcv_react_native: /capture-vision/docs/mobile/programming/react-native/
dcv_react_native_api: /capture-vision/docs/mobile/programming/react-native/api-reference/
dce_react_native: /camera-enhancer/docs/mobile/programming/react-native/
dce_react_native_api: /camera-enhancer/docs/mobile/programming/react-native/api-reference/
dcp_react_native: /code-parser/docs/mobile/programming/react-native/
dcp_react_native_api: /code-parser/docs/mobile/programming/react-native/api-reference/
dbr_react_native: /barcode-reader/docs/mobile/programming/react-native/
dbr_react_native_api: /barcode-reader/docs/mobile/programming/react-native/api-reference/
ddn_react_native: /document-normalizer/docs/mobile/programming/react_native/
ddn_react_native_api: /document-normalizer/docs/mobile/programming/react_native/api-reference/
dlr_react_native: /label-recognition/docs/mobile/programming/react_native/
dlr_react_native_api: /label-recognition/docs/mobile/programming/react_native/api-reference/

xamarin: /capture-vision/docs/mobile/programming/xamarin/
xamarin-api: /capture-vision/docs/mobile/programming/xamarin/api-reference/
xamarin-release-notes: /capture-vision/docs/mobile/programming/xamarin/release-notes/
Expand Down
1 change: 1 addition & 0 deletions _data/full_tree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ tree_file_list:
- sidelist-programming/programming-ios.html
- sidelist-programming/programming-maui.html
- sidelist-programming/programming-flutter.html
- sidelist-programming/programming-react-native.html
4 changes: 4 additions & 0 deletions _includes/sidelist-full-tree.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@
<a href="{{ site.dcv_flutter }}" class="otherLinkColour">Flutter Edition Introduction</a>
</li>
{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-flutter.html" -%}
<li lang="react-native">
<a href="{{ site.dcv_react_native }}" class="otherLinkColour">React Native Edition Introduction</a>
</li>
{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-react-native.html" -%}
11 changes: 7 additions & 4 deletions _includes/sidelist-programming/programming-flutter.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<li lang="flutter"><a class="otherLinkColour" href="{{ site.dbr_flutter }}explore-features/advanced-features.html" style="cursor:pointer;color:#3c3c3c">Advanced Features</a></li>
</ul>
</li>
<!-- <li lang="flutter"><a href="{{ site.dbr_flutter }}samples/index.html" class="otherLinkColour">Demo &amp; Samples</a></li> -->
<li lang="flutter"><a href="{{ site.dcv_flutter }}samples/index.html" class="otherLinkColour">Demo &amp; Samples</a></li>
<li lang="flutter"><a style="cursor:pointer;color:#3c3c3c">API References</a>
<ul lang="flutter">
<li lang="flutter"><a>CaptureVisionRouter</a>
Expand Down Expand Up @@ -678,14 +678,17 @@
</li>

<li lang="flutter" class="category">USEFUL RESOURCES</li>
<!-- <li lang="flutter"><a href="{{ site.dcv_flutter }}release-notes/" class="otherLinkColour">Release Notes</a></li> -->

<li lang="flutter"><a href="{{ site.dcv_flutter }}release-notes/" class="otherLinkColour">Release Notes</a>
<ul lang="flutter">
<li lang="flutter"><a href="{{ site.dcv_flutter }}release-notes/flutter-3.html" class="otherLinkColour">3.x</a></li>
</ul>
</li>
<li lang="flutter"><a class="otherLinkColour">Choose a Language</a>
<ul>
<li><a target="_blank" href="{{ site.dcv_android }}" class="otherLinkColour refreshLink">Android (Java & Kotlin)</a></li>
<li><a target="_blank" href="{{ site.dcv_ios }}" class="otherLinkColour refreshLink">iOS (Objective-C & Swift)</a></li>
<li><a target="_blank" href="{{ site.dcv_maui }}" class="otherLinkColour refreshLink">MAUI</a></li>
<li><a target="_blank" href="https://github.com/Dynamsoft/capture-vision-react-native-samples" class="otherLinkColour refreshLink">React Native</a></li>
<li><a target="_blank" href="{{ site.dcv_react_native }}" class="otherLinkColour refreshLink">React Native</a></li>
<li><a target="_blank" href="{{ site.dcv_cpp }}" class="otherLinkColour refreshLink">C++</a></li>
<li><a target="_blank" href="{{ site.dcv_python }}" class="otherLinkColour refreshLink">Python</a></li>
<li><a target="_blank" href="{{ site.dcv_java }}" class="otherLinkColour refreshLink">Java</a></li>
Expand Down
743 changes: 743 additions & 0 deletions _includes/sidelist-programming/programming-react-native.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ keywords: captured result base, Android
needGenerateH3Content: true
needAutoGenerateSidebar: true
noTitleIndex: true
ignore: true
---

# CapturedResultBase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ noTitleIndex: true

# MultiFrameResultCrossFilter

The `MultiFrameResultCrossFilter` class provides a filter that allows the library to manage and filter results by crosschecking the results across multiple images frames. This filter will compare consecutive frames of the video stream to perform operations like cross-verification, deduplication, and overlapping result management.
The `MultiFrameResultCrossFilter` class is an officially implemented `CapturedResultFilter` that provides:

> [!NOTE]
> This filter is especially handy in increasing the accuracy when trying to capture barcodes, documents, or MRZ zones via a camera in an interactive video scenario.
- **Overlapping**: Improves the read rate of multi-barcode scanning.
- **Cross Verification**: Improves the accuracy.
- **Deduplication**: Removes the duplicated results.

## Definition

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ keywords: captured result base, Flutter
needGenerateH3Content: true
needAutoGenerateSidebar: true
noTitleIndex: true
ignore: true
---

# CapturedResultBase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,8 @@ codeAutoHeight: true

```dart
enum EnumCrossVerificationStatus {
/// The item has not been verified.
notVerified,

/// The item has passed verification.
passed,

/// The item has failed verification.
failed
}
```
Expand Down
5 changes: 1 addition & 4 deletions programming/flutter/api-reference/core/enum/focus-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ breadcrumbText: EnumFocusMode

`EnumFocusMode` is an enumeration that specifies the different modes of focus that the Camera Enhancer can apply to the camera feed.

> [!TIP]
> If you choose to use the locked focus mode, the focal length used is determined by the input value of [`setFocus`](../camera-enhancer.md#setfocus).

## Definition

*Assembly:* dynamsoft_capture_vision_flutter
Expand All @@ -30,5 +27,5 @@ enum EnumFocusMode {

| Member | Description |
| ------ | ----------- |
| `locked` | Lock the focal length with an input value. |
| `locked` | Lock the focal length. |
| `continuousAuto` | Implements a continuous autoFocus. |
12 changes: 2 additions & 10 deletions programming/flutter/api-reference/core/image-source-adapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ abstract class ImageSourceAdapter
| Method | Description |
| ------ | ----------- |
| [`addImageToBuffer`](#addimagetobuffer) | Adds an image to the internal buffer. |
| [`clearBuffer`](#clearbuffer) | Clears all images from the buffer, resetting the state for new image fetching. |
| [`clearBuffer`](#clearbuffer) | Clears all images from the buffer. |
| [`getBufferOverflowProtectionMode`](#getbufferoverflowprotectionmode) | Get the current mode for handling buffer overflow. |
| [`getColourChannelUsageType`](#getcolourchannelusagetype) | Get the current usage type for color channels in images. |
| [`getImage`](#getimage) | Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `ImageData`. |
Expand All @@ -52,7 +52,7 @@ Future<void> addImageToBuffer(ImageData image);

### clearBuffer

Clears all images from the buffer, resetting the state for new image fetching.
Clears all images from the buffer.

```dart
Future<void> clearBuffer();
Expand All @@ -75,10 +75,6 @@ Get the current usage type for color channels in images.
Future<EnumColourChannelUsageType> getColourChannelUsageType();
```

**Remarks**

This method should be used to verify which colour channel the camera is using, and in turn verify what pixel type any images retrieved during the capture process will come out in.

### getImage

Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `ImageData`.
Expand Down Expand Up @@ -119,10 +115,6 @@ Sets the usage type for color channels in images.
Future<void> setColourChannelUsageType(EnumColourChannelUsageType type);
```

**Remarks**

This method should be used to change the pixel type of the original image or captured frame should you choose to retrieve it after the capture process. In order to retrieve the original image after the barcode is decoded or the captured result is received, please refer to [this article].

### setMaximumImageCount

Sets the maximum number of images that can be buffered at any time.
Expand Down
17 changes: 11 additions & 6 deletions programming/flutter/api-reference/utility/image-drawer.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,16 @@ Draws quadrilaterals on the image with the specified style parameters.
Future<ImageData> drawOnImage(ImageData image, List<Quadrilateral> quadrilaterals, int color, int thickness) async
```

**Remarks**
**Parameters**

- `image`: The source image to draw on.
- `quadrilaterals`: List of Quadrilateral objects to render onto the image.
- `color`: ARGB colour value (0xAARRGGBB format)
- `thickness`: The line thickness in pixels.
`image`: The source image to draw on.

The method returns an [`ImageData`](../core/image-data.md) object that represents the new image with the rendered shapes.
`quadrilaterals`: List of Quadrilateral objects to render onto the image.

`color`: ARGB colour value (0xAARRGGBB format)

`thickness`: The line thickness in pixels.

**Returns**

An [`ImageData`](../core/image-data.md) object that represents the new image with the rendered shapes.
101 changes: 101 additions & 0 deletions programming/flutter/release-notes/flutter-3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
layout: default-layout
title: Release Notes v3.x - DynamsoftCaptureVisionBundle Flutter Edition
description: The release notes of DynamsoftCaptureVisionBundle Flutter Edition v3.x.
keywords: release notes, capture vision bundle, Flutter, dcv
needAutoGenerateSidebar: true
noTitleIndex: true
---

# Release Notes v3.x - DynamsoftCaptureVisionRouter Module

## 3.2.3000 (12/04/2025)

### 🎉Milestone Release

Version 3.2.3000 introduces a series of AI-driven improvements designed to enhance barcode and MRZ detection accuracy, processing speed, and configuration flexibility.

This release focuses on practical performance gains for production environments across retail, logistics, manufacturing, and identity verification workflows.

### ✨ Key Highlights

#### AI-Powered Barcode Detection and Decoding

- New Localization Models – Introduces [`OneDLocalization`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/localization-modes.html#modelnamearray) and [`DataMatrixQRCodeLocalization`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/localization-modes.html#modelnamearray) neural network models for improved detection of **blurred / low-resolution 1D codes**, or **partially damaged DataMatrix/QR codes**.
- Specialized Decoders – Adds [`EAN13Decoder`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#modelnamearray) and [`Code128Decoder`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#modelnamearray) models optimized for **long-distance** and **motion-blurred** decoding scenarios.
- Redesigned Deblur Model – The [`OneDDeblur`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#modelnamearray) model now provides more effective recovery from **motion and focus blur**.
- Configurable Model Selection – The new `ModelNameArray` parameter supports flexible model loading and fine-grained control for specific barcode types.

#### Precision and Processing Control

- Enhanced Deblur Methods – [`DM_DEEP_ANALYSIS`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#dm_deep_analysis) now includes sub-level control with `OneDGeneral`, `TwoDGeneral`, and `EAN13Enhanced` options.
- Barcode Count Expectation – The new [`ExpectedBarcodesCount`]({{ site.dcv_parameters_reference }}barcode-format-specification/expected-barcodes-count.html) parameter enables **format-specific quantity control** and **early termination** in fixed-count workflows.
- Improved Region Detection – The new [`RPM_GRAY_CONSISTENCY`]({{ site.dcv_parameters_reference }}image-parameter/region-predetection-modes.html#rpm_gray_consistency) mode provides more precise region extraction based on **grayscale uniformity** and **local consistency** for document and label processing.

#### AI-Powered MRZ Detection

- Neural MRZ Localization – The new [`MRZLocalization`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/localization-modes.html#modelnamearray) model improves region detection accuracy and delivers up to **42.7%** faster processing for MRZ-based document workflows.
- Configurable Localization Control – The new [`LocalizationModes`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/localization-modes.html) parameter allows configuration for text line detection.

#### Smart Document Capture

- Clarity-Based Frame Selection – Automatically selects the sharpest and highest-quality frame in live capture workflows.
- Cross-Frame Verification – Updated verification algorithms enhance result reliability.

### Performance Highlights

#### Barcode Workflows

- Up to **26.5%** higher read rates under blur conditions with as much as **44%** faster processing.
- Reliable decoding of DataMatrix and QR codes with missing or damaged finder patterns.
- Extended operational range beyond 75 cm for long-distance barcode scanning.

#### Document Workflows

- Improved performance in live video capture environments.
- Consistent document quality through clarity-based frame evaluation.
- Faster MRZ processing for high-throughput identity verification

### Developer Notes

- Backward Compatibility – Fully compatible with existing integrations; no code-level changes required for upgrade.
- Configuration Flexibility – Expanded parameter set allows comprehensive model configuration for scenario-specific tuning.
- Production Stability – All new models validated in enterprise environments.

### New

- Added a new method, [`switchCapturingTemplate`]({{ site.dcv_flutter_api }}capture-vision-router.html#switchcapturingtemplate), which allows switching templates dynamically during the image processing workflow.
- Added a new method, [`clearDLModelBuffers`]({{ site.dcv_flutter_api }}capture-vision-router.html#cleardlmodelbuffers), to release memory by clearing buffered deep learning models.
- Added a new method, [`setGlobalIntraOpNumThreads`]({{ site.dcv_flutter_api }}capture-vision-router.html#setglobalintraopnumthreads), to configure the global number of threads used for model execution.
- Added a new button, `cameraToggleButton`, to the `CameraView`, allowing users to switch between the front and back cameras.
The following APIs are provided for configuring the `cameraToggleButton`:
- [`cameraToggleButton`]({{ site.dce_flutter_api }}camera-view.html#cameratogglebutton)
- [`cameraToggleButtonVisible`]({{ site.dce_flutter_api }}camera-view.html#cameratogglebuttonvisible)
- Added new methods to class `ImageIO` for reading and saving images:
- [`readFromMemory`]({{ site.dcv_flutter_api }}utility/image-io.html#readfrommemory)
- [`saveToMemory`]({{ site.dcv_flutter_api }}utility/image-io.html#savetomemory)
- Added a new method [`cropAndDeskewImage`]({{ site.dcv_flutter_api }}utility/image-processor.html#cropanddeskewimage) to class `ImageProcessor` for cropping & deskewing images.

## 3.0.5200 (08/28/2025)

### [Highlights](https://www.dynamsoft.com/release-highlights/?product=dcv3.0)

- Workflow Improvements
- Restructured the parameter control hierarchy at all levels for finer scope definition and more granular process management, with the stage level newly added.
- Enabled custom combinations and sequences of sections, increasing flexibility and operational customization under specific conditions.
- Redesigned document normalization sections to better accommodate diverse document processing operations.

- Deep Learning Integration
- Improved the reading rate of 1D barcode by introducing a new deblurring deep-learning model.
- Enhanced text recognition capabilities with deep learning-based text-line recognition.

- Algorithm Enhancements
- Enabled deduplication at the Region of Interest (ROI) level to consolidate results from multiple tasks.
- Enhanced the text recognition workflow by integrating improved multi-step recognition processes and validation methods.
- Improved the CODE_128 and DataMatrix DeepAnalysis algorithms for better decoding accuracy and performance.
- Added support for new barcode types: CODE_32, MATRIX_25, KIX, and TELEPEN.
- Added GS1 Application Identifiers (AI) support for improved code parsing capabilities.

- Engineering Optimizations
- Unified template-loading logic to reduce I/O overhead.
- Implemented conversion functionality between `ImageData` and image files, including both on-disk and in-memory files.
13 changes: 13 additions & 0 deletions programming/flutter/release-notes/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
layout: default-layout
title: Flutter Release Notes - Dynamsoft Capture Vision Flutter SDK
description: This is the release notes page of Dynamsoft Capture Vision for Flutter SDK.
keywords: release notes, Flutter
needAutoGenerateSidebar: false
breadcrumbText: Release Notes
---

# Dynamsoft Capture Vision Flutter SDK - Release Notes

- [3.2.3000 (11/06/2025)]({{ site.dcv_flutter }}release-notes/flutter-3.html#323000-11062025)
- [3.0.5200 (08/28/2025)]({{ site.dcv_flutter }}release-notes/flutter-3.html#305200-08282025)
56 changes: 56 additions & 0 deletions programming/flutter/samples/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
layout: default-layout
title: Demo & Samples - Dynamsoft Capture Vision Flutter Edition
description: The index of Dynamsoft Capture Vision Flutter demo & samples.
keywords: demo, sample, index, Flutter, capture vision
needAutoGenerateSidebar: true
noTitleIndex: true
---

# Demo and Samples

All of the samples that have been created for the Dynamsoft Capture Vision Flutter Edition are hosted in this Github repo. Feel free to use these samples as reference when building your own Flutter app.

## Read Barcodes

### ScanBarcodes_FoundationalAPI

This is a sample that demonstrates the simplest implementation of the Capture Vision to allow for barcode decoding via the camera using the [Foundational API]({{ site.dbr_react_native_api }}).

[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-flutter-samples/tree/main/ScanBarcodes_FoundationalAPI){:target="_blank"}

### ScanDriverLicense

This sample demonstrates the simplest implementation of the Capture Vision for recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data.

[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-flutter-samples/tree/main/ScanDriversLicense){:target="_blank"}

## Scan Documents

Detect & Deskew the document pages. You can edit the document boundaries if required.

[Check code on GitHub](https://github.com/Dynamsoft/capture-vision-flutter-samples/tree/main/ScanDocument)

## Scan MRZ

Scan the MRZ code of a passport or an ID card and parse the information.

[Check code on GitHub](https://github.com/Dynamsoft/capture-vision-flutter-samples/tree/main/ScanMRZ)

## Scan VIN

Scan the vin barcode or text and extract the vehicle information.

[Check code on GitHub](https://github.com/Dynamsoft/capture-vision-flutter-samples/tree/main/ScanVIN)

## Demos

If you would like to see the Capture Vision in action before starting the development journey, we have a demo app available on both the App Store as well as the Google Play Store.

- Barcode Scanner Demo
- [View in Google Play Store](https://play.google.com/store/apps/details?id=com.dynamsoft.demo.dynamsoftbarcodereaderdemo&pli=1){:target="_blank"}
- [Download APK](https://download2.dynamsoft.com/dbr/android/DynamsoftBarcodeReaderDemoAndroid.apk)
- [View in App Store](https://apps.apple.com/us/app/dynamsoft-barcode-scanner-demo/id1120581630){:target="_blank"}
- MRZ Scanner Demo
- [View in Google Play Store](https://play.google.com/store/apps/details?id=com.dynamsoft.mrzscanner){:target="_blank"}
- [View in Apple Store](https://apps.apple.com/us/app/dynamsoft-mrz-scanner/id6736854735){:target="_blank"}
Loading