Skip to content

Data Matrix Code Reader vTool#

The Data Matrix Code Reader vTool allows you to detect Data Matrix codes in images and decode them.

The Data Matrix Code Reader can detect and decode up to three Data Matrix codes in images it receives via the Image input pin. It outputs the results via the Regions and Texts output pins.

The region output contains the region in which a Data Matrix code was found. The text output is the text string encoded by the Data Matrix code.

Data Matrix Code Reader vTool

How It Works#

You can detect up to three Data Matrix codes in an image. If you know that your images only contain one or two codes, configuring the Data Matrix Code Reader to only look for the expected number of Data Matrix codes may save processing time. If the number of Data Matrix codes varies or is unknown, configure the Data Matrix Code Reader to look for three codes.

Detection Criteria#

For Data Matrix codes to be detected and decoded, they must meet the following criteria:

  • Code structure: The Data Matrix Code Reader supports the standard Data Matrix code ECC200 structure (matrices with 10 to 144 rows and columns).
  • Module size: The sides of individual modules in the matrix must be between 6 to 20 pixels long.
  • Gaps between modules: Gaps between modules are not allowed.
  • Slant: Codes must not be slanted by more than 10 °.
  • Grid conformity: All modules must lie within the matrix grid.
  • Polarity: Data Matrix codes must be dark-on-light patterns.
  • Mirroring: Data Matrix codes mirrored vertically, horizontally, or both can be detected.
  • GS1 support: The Data Matrix Code Reader supports reading GS1 Data Matrix codes.


For time-critical applications you can specify a timeout. A timeout helps in cases where the processing time varies or can't be foreseen, for example, if the image doesn't contain a Data Matrix code. Once the specified timeout is exceeded, the detection process stops and moves on to the next image.

Basler recommends setting the timeout a bit lower than the desired time limit. This is because the vTool doesn't stop the detection process immediately. Therefore, set the timeout to 70–80 % of the desired time limit.

Common Use Cases#

  • Reading Data Matrix codes: In this case, you only need to connect the Texts output pin to output the decoded strings.
  • Determining the positions of Data Matrix codes: Use the positions and sizes of the Data Matrix codes returned by the Regions output pin for subsequent processing.

Configuring the vTool#

To configure the Data Matrix Code Reader vTool:

Data Matrix Code Reader vTool Settings

  1. In the Recipe Management pane in the vTool Settings area, click Open Settings or double-click the vTool.
    The Data Matrix Code Reader dialog opens.
  2. In the Number of Data Matrix Codes area, select how many Data Matrix codes you want to detect.
  3. In the Timeout area, specify whether you want detection to end after a certain amount of time. If you want to specify a timeout, clear the No timeout check box and enter the desired timeout in the input field.

You can view the result of the Data Matrix Code Reader in a pin data view. Here, you can select which outputs to display.



Accepts images directly from a Camera vTool or from a vTool that outputs images, e.g., the Image Format Converter vTool.

  • Data type: Image
  • Image format: 8-bit to 16-bit mono or color images. Color images are converted internally to mono images.



Returns the text string encoded in a Data Matrix code.

  • Data type: String Array


Returns the region of every Data Matrix code found. The region is of rectangular shape. It can be used for visualization purposes or for subsequent feature extraction.

  • Data type: Region Array

Typical Predecessors#

Typical Successors#

  • Region Feature Extraction vTool
    Connect the Region Feature Extraction vTool to determine the center, size, and orientation of the Data Matrix codes found.