1

与 libdmtx 相比,ZXing 的 DataMatrix 解码的条码本地化有多可靠?

我有一组包含 DataMatrix 条形码的贴纸 png 图像文件(专有的,所以很遗憾我无法分享它们)。这些贴纸位于平坦的表面上,具有非常好的安静区域,并且通常位于图像的中心,但会受到光照条件和轻微灰尘的影响,这可能是可靠解码的最大障碍。

我想使用可修改的 Java 库来解码它们,似乎 ZXing 是唯一的开源选项(对其他建议开放)。然而,在通过ZXing 在线解码器运行这些图像时,我始终没有找到 BARCODE FOUND,即使是在最干净的图像上也是如此。相比之下,当我通过专有的在线解码器(例如Inlite 的免费在线条形码阅读器)运行相同的图像时,我可以获得所有图像的可靠解码。我的公司已经在 C 中实现了一个库,它还通过处理和调用libdmtx来可靠地解码条形码图像。同样,这个基于 libdmtx 构建的在线 DataMatrix 解码器也可以可靠地读取我的图像文件。

ZXing 中的条码本地化是否明显不如 libdmtx?如果我在通过 ZXing 运行图像文件之前尝试对图像文件进行相同的预处理,是否可以获得类似的结果?我对 Java 库(ZXing)有强烈的偏好,但我可能别无选择,只能使用 libdmtx。将不胜感激任何见解,谢谢!

4

2 回答 2

0

我和你有类似的问题,但在编码方面。根据我的发现,Zxing 肯定不如 Libdmtx。我们在 C++ 和 Java 项目中使用了这两个库。

有一种情况是 Zxing 在生成条形码时中断,请看我的评论: https ://github.com/zxing/zxing/issues/624

然而 Libdmtx 工作流畅。您在 Java 世界中拥有的其他免费选项是(它们用于编码):

  • 条形码4j
  • Okapi条码
于 2019-04-01T12:57:49.367 回答
0

另一种选择是这里相对较新的 ZXing cpp 端口:https ://github.com/nu-book/zxing-cpp 。

它包含一个全新的 DataMatrix 检测器,旨在修复 Java 上游版本的严重限制。它专门设计用于处理低分辨率图像(模块大小低至约 2 个像素)和仅具有所需 1 个模块的安静区域和繁忙背景的符号。

下面的比较肯定不“公平”,但我刚刚dmtxread使用 libdmtx 的实用程序尝试了我的测试图像集,它错过了 17 个样本中的 3 个,并且与我的代码相比,它花费的时间是我的代码的 300 倍 :)。

于 2020-11-06T23:07:12.597 回答