首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZXing库无法解码Datamatrix条形码

ZXing库无法解码Datamatrix条形码
EN

Stack Overflow用户
提问于 2014-03-13 22:18:04
回答 1查看 4.8K关注 0票数 2

我正在尝试使用ZXing库来解码Datamatrix条形码。下面是我的代码示例:

代码语言:javascript
运行
复制
BufferedImage bi = img.getBufferedImage();

Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);

LuminanceSource source = new BufferedImageLuminanceSource(bi);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
DataMatrixReader dataMatrixReader = new DataMatrixReader();

try {
    Result res = dataMatrixReader.decode(bitmap,hints);
    System.out.println("resultText = "+res.getText());
} catch (Exception e) {
    System.out.println("failed to get resultText");
    e.printStackTrace();
}

我在https://stackoverflow.com/和其他网站上多次看到几乎相同的示例,但这种方法在这种形式下对我不起作用。

作为一个来源,我使用从红外相机抓取的图像。以下是示例图像:

如您所见,条形码几乎恰好位于图像的中心,正如Sean Owen推荐的herehere一样。如果我以编程方式将此图像转换为黑白图像,并将图像裁剪为绑定的条形码,并且只在其周围留出一些空白,那么ZXing可以完美地处理这样的图像。但问题是,现实中的条形码可能会有很小的变形,所以我的简单算法无法帮助我正确地裁剪图像。更重要的是,条形码可能不会精确地放在图像的中心,并且条形码的亮度略有不同。我看到一些线程提到了OpenCV功能,以找出特定对象在图像上的位置,比如this one,但它们太老了。从那以后有什么改变了吗?在我的特定情况下,我应该考虑什么才能写出100%可靠的数据矩阵解码器(和检测器)?

我决定提供由校正对象的.toString()文本输出组成的LuminanceSource和BinaryBitmap图像以供参考:http://s28.postimg.org/l53sykhx9/Binary_Bitmap.png

和/65z0vlbpl/Luminance_Source.png (在相同的域中)。它们看起来很好,可以解码了,但是解码有什么问题呢?

毕竟,这个图像和类似的图像用智能手机软件识别和解码得很好,我只是想达到同样的效果。

EN

回答 1

Stack Overflow用户

发布于 2014-12-29 20:04:45

您需要通过设置以编程方式或手动方式启用它。

在类DecodeThread.java中,您可以看到启用数据矩阵编码的代码行

代码语言:javascript
运行
复制
decodeFormats.addAll(DecodeFormatManager.DATA_MATRIX_FORMATS);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22381421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档