Choosing the right alternative to libdmtx for reading Data Matrix codes

A Data Matrix code is a type of 2D barcode, designed for encoding large amounts of data in small spaces, making it ideal for industries like healthcare, automotive & electronics, which require high-data density in small space. Ensuring accurate barcode scanning is crucial for operation efficiency in these industries. libdmtx is an open-source library popularly used by developers for reading and writing Data Matrix codes. In this blog we are going to compare libdmtx’s performance with Dynamsoft Barcode Reader in scanning Data Matrix codes under various circumstances.

Decoding Success Rate Comparison

To evaluate how libdmtx performs against Dynamsoft Barcode Reader (DBR) we ran a test against images of Data Matrix codes in multiple categories.

  1. Printed in good quality
  2. Tiny
  3. Multiple Data Matrix codes in a single image
  4. Low Contrast
  5. Dot peen Direct Part Marking

Printed in Good Quality

With the Data Matrix codes which were printed in high-quality, both libdmtx and DBR performed admirably. Both decoded these codes accurately and efficiently, making them suitable for applications where Data Matrix image quality is consistently high.

dm-code-scan-good-quality

Tiny Data Matrix Codes

In scenarios involving tiny Data Matrix codes, libdmtx failed to detect the barcode. We tested them on white background as well as black background, in both case libdmtx could not detect the tiny Data Matrix code. Dynamsoft Barcode Reader, however, is designed to handle such challenges, reliably detected Data Matrix codes on both white and black backgrounds.

On white background

tiny-datamatrix-white-bg

On black background

tiny-datamatrix-black-bg

Multiple Data Matrix Codes in One Image

Scanning images with multiple Data Matrix codes can be challenging. libdmtx encountered difficulties while detecting multiple Data Matrix codes in a single image, especially when they were etched on metal surfaces. Dynamsoft Barcode Reader excelled in this, also detecting all Data Matrix codes accurately.

You can see from the scan results that Dynamsoft Barcode Reader detected all three Data Matrix codes on metal surface accurately, while libdmtx could detect only one.

multiple-data-matrix-code

Low contrast

In real-world scenarios, Data Matrix codes may be printed in low contrast, so, we tested how DBR & libdmtx perform while scanning low contrast Data Matrix codes. Interestingly, both demonstrated excellent performance while detecting low-contrast Data Matrix codes. This indicates that not just DBR but libdmtx also possess robust algorithms capable of handling low-contrast Data Matrix codes.

low-contrast

Dot Peen Direct Part Marking (DPM)

Direct Part Marking involves marking barcodes directly onto objects using methods like dot peening, laser etching etc. Scanning these DPM codes is often challenging. Unlike printed barcodes, dot peen codes are created by mechanical impact, which can result in inconsistent dot sizes, spacing, and depth. Also, the individual dots in a dot peen matrix can sometimes merge or appear distorted. We tested both DBR & libdmtx to scan dot peen DPM on a circuit board. While Dynamsoft Barcode Reader successfully detected the barcode, libdmtx struggled to detect the Data Matrix code. This highlights Dynamsoft Barcode Reader ability to successfully detect and scan DPM.

dot-peen

dot-peen-dpm

In our decoding performance evaluation, Dynamsoft Barcode Reader (DBR) consistently outperformed libdmtx in handling challenging Data Matrix scanning scenarios. While both performed well on high-quality and low-contrast prints, DBR demonstrated superior capabilities in detecting tiny Data Matrix codes, multiple codes within a single image, and codes etched on metal surfaces such as Dot Peen Direct Part Marking (DPM), a critical application for industrial environments.

Additional Comparison Considerations

Language Support

Dynamsoft Barcode Reader supports a wide range of platforms such as Android, iOS, JavaScript, C, C++, Python, Node.js, .NET, Java etc., libdmtx on the other hand provides limited language and platform support. It’s written in C, with its core library maintained by its author and contributors. While language wrappers exist for Python, Java, C#, and others, these are often community-maintained. This means that updates and support could be inconsistent compared to the core library.

Regular Updates

One more challenge libdmtx faces is maintaining consistent updates and support, potentially struggling to keep pace with evolving development platforms, browsers, and operating systems. In contrast, Dynamsoft offers regular feature upgrades and performance enhancement. These advantages ensures that businesses can quickly resolve any issues and stay ahead with the latest technological advancements.

Scalability & Versatility

Dynamsoft Barcode Reader excels in reading not just Data Matrix codes but other barcode types also including QR Code, PDF417, 1D Barcodes and more, unlike libdmtx which is limited to Data Matrix codes. This versatility of DBR gives you an advantage should your need to scan different barcode types arise in the future. DBR also offers advanced features such as real-time scanning and cloud integration, providing a more comprehensive solution compared to libdmtx’s limited scope.

Accountability & Long-term Support

Dynamsoft offers dedicate technical support, ensuring that developers can quickly resolve any issues they encounter. For projects which are time-sensitive, a dedicated technical support could be crucial. libdmtx, being community-managed has limited support options, that could potentially lead to delays in resolving technical challenges.

Conclusion

While libdmtx is a capable open-source library, it is more suited for simpler projects. It is constrained by limited language and platform compatibility. Dynamsoft Barcode Reader on the other hand is a robust barcode reader which offers superior performance. Beyond performance, DBR also offers regular product updates and dedicated technical support, ensuring your application remains compatible with the latest technology. Dynamsoft Barcode Reader’s multiple platform support, various optimization parameters, commitment to ongoing developments makes it an ideal choice for developers seeking a robust, reliable, and future-proof solution for barcode decoding.

Getting started

Ready to integrate Data Matrix scanning into your project? Here is how you can get started with Dynamsoft Barcode Reader

For integrating libdmtx visit the libdmtx GitHub page: https://github.com/dmtx/libdmtx. Follow the instructions for building the library for your target platform.