【发布时间】:2015-12-07 01:36:39
【问题描述】:
我尝试使用 Zxing 来解码 Aztec 代码。
我使用来自SO answer 的代码。 这是其中的一部分:
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();
}
我尝试通过上面的代码读取这些图像:
但这失败了:
Exception in thread "main" com.google.zxing.NotFoundException
我说 - 好吧,也许质量太低了 - 所以我选择了 GIMP 并且:
- 使用 3x3 蒙版侵蚀图像。
- 采用自动 gimp 阈值处理(二值化图像)。
简单的预处理给了我这个:
也许它没有出色的质量,但它只是黑白 - 更好吗?不。我仍然获得:
Exception in thread "main" com.google.zxing.NotFoundException
奇怪的是:几乎所有条形码阅读器都可以毫无问题地读取两者。例如:NeoReader(Android - 手机)从笔记本电脑的屏幕读取两者 - 正确!
我想补充一点,像 this from Wiki 这样的绝对清晰的图像可以被这段代码正确识别。
问题:
上面的代码有什么问题?
如何解码这个阿兹特克代码?我可以进行任何预处理,但需要哪些步骤?
请帮忙。
项目详情:Java 8、com.google.zxing:core:3.2.1、com.google.zxing:javase:3.2.1
【问题讨论】:
标签: java image-processing barcode zxing aztec-barcode