gpt4 book ai didi

java - 检测并解码图像中的多个二维(Datamatrix、QRcode)

转载 作者:行者123 更新时间:2023-12-01 04:30:41 27 4
gpt4 key购买 nike

我正在开发一个项目,该项目涉及将图像文件作为桌面上的输入,然后检测和解码存在的所有条形码(一维和二维)。

我一直在使用 zxing,在 GenericMultipleBarcodeReader 的帮助下,我能够从图像中读取多个一维条形码。但是,它无法检测二维条形码。但是,如果我裁剪二维条形码并单独输入该裁剪部分,它会毫无问题地检测和解码它。

因此,如果我的图像有 2 个 1D 条形码和一个 2D 条形码,我的输出仅包含解码后的 2 个 1D 条形码。

我也尝试过使用 ByQuadrantReader,但这也不起作用。

我的代码:

LuminanceSource source = new BufferedImageLuminanceSource(image); 
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result[] result;
HashMap<DecodeHintType,Object> hints = new HashMap<>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
try
{
result = new GenericMultipleBarcodeReader(new MultiFormatReader()).decodeMultiple(bitmap, hints);
}
catch (ReaderException re)
{
return re.toString();
}
List<String> strings = new ArrayList<String>();
for (Result r: result)
{
strings.add(r.getText());
}
return String.valueOf(Arrays.toString(strings.toArray()));

谁能告诉我一种方法吗?

最佳答案

QR 码可以在图像中的任何位置找到,但 Data Matrix 必须位于图像的中心才能找到。这就是为什么它在裁剪图像时起作用。

关于java - 检测并解码图像中的多个二维(Datamatrix、QRcode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com