首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中兴NotFoundException

中兴NotFoundException
EN

Stack Overflow用户
提问于 2015-09-10 16:42:29
回答 1查看 9.3K关注 0票数 3

我试着用Z行来解码Aztec代码。

我使用来自所以回答的代码。以下是其中的一部分:

代码语言:javascript
复制
public static String readQRCode(String filePath, String charset, Map hintMap)
        throws FileNotFoundException, IOException, NotFoundException {
    BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
            new BufferedImageLuminanceSource(
                    ImageIO.read(new FileInputStream(filePath)))));
    Result qrCodeResult = new MultiFormatReader().decode(binaryBitmap,
            hintMap);
    return qrCodeResult.getText();
}

我试图通过上面的代码读取这些图像:

但这一做法失败了,原因是:

代码语言:javascript
复制
Exception in thread "main" com.google.zxing.NotFoundException

我说-好吧,也许它的质量太低-所以我采取了GIMP和:

  1. 用3x3掩模腐蚀图像。
  2. 采取自动gimp阈值(二值化图像)。

简单的预处理给了我这个:

也许它没有美妙的品质,但它只是黑白的--它更好吗?不是的。我仍然得到:

代码语言:javascript
复制
Exception in thread "main" com.google.zxing.NotFoundException

奇怪的是:几乎所有的条形码阅读器都没有问题地阅读。例如: NeoReader (Android -移动电话)从笔记本电脑的屏幕上读取-正确!

我想补充的是,像这是Wiki发来的这样的绝对清晰的图像被这段代码正确识别了。

问题:

上面的代码有什么问题?

阿兹特克密码是怎么解码的?我可以做任何预处理,但需要哪些步骤?

请帮帮忙。

项目详细信息: Java 8,com.google.z行:core:3.2.1,com.google.z行:javase:3.2.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-20 09:56:39

请不要使用jpg文件,因为您丢失了一些重要的信息。使用无损压缩文件格式,如bmp或png。

除了另一个网页外,我仍然无法读取这段代码:http://www.onlinebarcodereader.com/在预处理后读取它:

  1. 仅将图像裁剪到aztec代码:

  1. 创建点的均匀数组(83行和83列),并围绕每个点(中心=计算点,半径=4)做小圆:

  1. 创建大小为83x83的矩阵,并将每个矩阵单元格的值设置为对应圆中的图像平均值。结果:

  1. 使用简单的阈值处理(如果值< 114,则为0,否则为255),并使用安静区域和模块大小将图像保存为4:

我不知道为什么在线导航阅读器不读这段代码(可能有很多错误,您应该改进一下上面的算法)。

预处理非常容易,因此您可以使用任何开源的图像处理库,例如OpenCV。(我使用了(Lite版本应该足够了) )。

使用上面提到的在线aztec阅读器,我收到:

mAMAAPZCAEEABr8yAjkAMX8KMAA1AP98AFAAUgBFAPtaAFkARA7/TgBUACAATd8ALgpTAL5UD1f3blIavVoOV+5OfFLXFklau0xeDndDAEFL3k8eQf06QQBMt38jd0kARH/fThpaAb1DHiDu/jBOwAauCi0K1gIzy43Oj9doLjY7SjQKwTFX2+ZVALtHCpZ2VAB8A8GTrzZSWHtqRB73VgBGor8yljgASHueRn63AjcANnuX25lnBv93/zgALW4rLfYDDg5TBV5LwQBPB3dG6rxOtlUdP6AeTO8CQRZJeypHSxseXi4qLvceLyKCLYvc89DaMfDnawc38+8wLjkMB247hjIHrw0AvQrXwSPXfyBSgjQ/Cqwwj7UaNe1uNSN9OQA3g0NhD70yN8Dv3SM4ADeDi7szNiZbLD8Wh2EXvU/uIO1HGkYPAjYHl7wyYjbokcNB1zYyw7hTO5ZNlsdDXt7TiiDhErx2GAF7ARjfMn8IVxsws3c1AkYvBje+NSNB8ANN6zPwBzj7izIj7zAT7TQAMANsOhJJJJJU/w==M

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32507410

复制
相关文章

相似问题

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