を使用して、スキャンされたPDFから複数のQRコードを読み取る際に一貫性のない結果が発生しました。zxing library
とQRコードが初めてです。 QRコードを生成しました。そのQRコードは紙に貼り付けられ、後でPDFでスキャンされます。私はもちろん、このスキャンされたPDFページをページごとに読み取るzxing
ライブラリ自体を使用してクライアントプログラムを作成しており、ページにQRコードがある場合はQRコードテキストを表示しています。私はスキャンされたPDFの各ページから複数のQRを読み込もうとしています。zxingライブラリ
私はいくつかのQRコードを読むことができますが、結果は矛盾しています。 QRコードをPDFページで読むことができますが、そのうちのいくつかはクライアントプログラムで認識されません。私はthrough other threads for same topicに行った。私は100%の結果を得ることはできませんが、少し私のコードを変更しました。
ここに私が正確に何をしているのかについてのより多くのアイデアを与えるためのコードスニペットがあります。
注:私は、私は多くの組み合わせが、運を試してみましたが、各PDFページのスキャン画像as shown here
private void extractBarcodeText(BufferedImage bufferedImage) {
try {
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, BarcodeFormat.QR_CODE);
LuminanceSource source = new com.google.zxing.client.j2se.BufferedImageLuminanceSource(bufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
List<String> innerTextList = new ArrayList<String>();
QRCodeMultiReader multiReader = new QRCodeMultiReader();
Result[] results = multiReader.decodeMultiple(bitmap, hints);
for (int k = 0; k < results.length; k++) {
String text = results[k].getText();
innerTextList.add(text);
System.out.println("#################### Rendered Text from Image #################"+ " " + text);
}
} catch (NotFoundException e) {
e.printStackTrace();
}
}
を抽出するために、iTextのPDFライブラリのPdfReaderContentParserを使用しています。それは貧弱な画質によるものですか?しかし、その後どのようにいくつかの画像が認識なっていると謎:(
誰もが、私はこの問題を克服するために何をすべきかを知っていますかなど、いくつかの遺跡?ここでは、最初の画像に使用して認識しつつある、あなたの参照のための最下部に1 sample imageです(HRA)がないコードの上に!
お返事ありがとうございます。 私はそれを軽くぼかすか、サンプルをダウンサンプリングすることができますか? ? –
AWTの変換を使用して、インターネット上でのサイズ変更やぼかし検索を行うことができます。これは 'BufferedImage'で動作します。 –
ありがとうSean。私はぼかしを加え、それは認識を改善しましたが、私はまだ約20%〜30%の誤差を見ます。下段に添付されている認識されなかった画像をご覧ください。これは私が使用したコードです。検出率を向上させるためにできることはありますか?また、サイズを大きくしたり小さくしたりする必要があります。さらに、他にも私ができる画像操作がありますか?このアルゴリズムは、カラーまたは白黒画像でうまく機能しますか?ここ –