title: Libdmtx vs ZXing for DataMatrix Decoding?
body: <p>How reliable is ZXing's barcode localization for DataMatrix decoding compared to libdmtx?</p>
  
  <p>I have a set of png image files of stickers (proprietary, so unfortunately I'm not able to share them) containing DataMatrix barcodes. These stickers sit on flat surfaces, have very nice quiet zones and are generally centered in the image, but suffer from inequal lighting conditions and slight dust, likely the largest obstacle to reliable decoding.  </p>
  
  <p>I'd like to use a modifiable Java library to decode them and it seems that ZXing is the only open-source option (open to other suggestions).  However, upon running these images through the <a href="https://zxing.org/w/decode.jspx" rel="nofollow noreferrer">ZXing online decoder</a>, I consistently get NO BARCODE FOUND, even on the cleanest images.  In contrast, when I run the same images through proprietary online decoders, like <a href="https://online-barcode-reader.inliteresearch.com/" rel="nofollow noreferrer">Inlite's Free Online Barcode Reader</a>, I get reliable decodes for all the images. My company has implemented a library in C that also reliable decodes the barcode images by processing them and calling <a href="https://github.com/dmtx/libdmtx" rel="nofollow noreferrer">libdmtx</a>. Similarly, this <a href="http://boy.co.ua/decode.php" rel="nofollow noreferrer">online DataMatrix decoder</a> built on libdmtx can also reliably read my image files. </p>
  
  <p>Is the barcode localization in ZXing significantly inferior to libdmtx? 
  If I attempt the same preprocessing on the image files before I run them through ZXing, could I achieve similar results? I have a strong preference for a Java library (ZXing), but I may have no choice but to use libdmtx. Would appreciate any insight, thanks! </p>