1

デスクトップで画像ファイルを入力として受け取り、存在するすべてのバーコードを 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()));

誰でもこれを行う方法を教えてもらえますか?

4

1 に答える 1

0

QR コードは画像のどこにでもありますが、Data Matrix は画像の中央になければ見つかりません。これが、画像をトリミングするときに機能する理由です。

于 2013-08-05T07:22:37.823 に答える