デスクトップで画像ファイルを入力として受け取り、存在するすべてのバーコードを 1D と 2D の両方で検出してデコードするプロジェクトに取り組んでいます。
私は zxing を使用しており、GenericMultipleBarcodeReader の助けを借りて、画像から複数の 1D バーコードを読み取ることができました。ただし、2 次元バーコードは検出できません。しかし、2 次元バーコードをトリミングして、このトリミングされた部分を個別に入力すると、問題なく検出およびデコードされます。
したがって、画像に 2 つの 1D バーコードと 1 つの 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()));
誰でもこれを行う方法を教えてもらえますか?