2017-03-26 153 views

答えて

1

どのコーナー座標を抽出するのか正確にはわかりません。 しかし、私はあなたが Result.getResultPoints()メソッドから得られた結果ポイントからそれらを計算することができると確信しています。

例:次の画像(200×200ピクセル)とコードスニペット

QRCode

BufferedImage image = ImageIO.read(new File("QRCode-1.png")); 
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
     new BufferedImageLuminanceSource(image))); 
Reader reader = new QRCodeReader(); 
Result result = reader.decode(binaryBitmap); 
System.out.println("text: " + result.getText()); 
ResultPoint[] resultPoints = result.getResultPoints(); 
System.out.println("resultPoints:"); 
for (int i = 0; i < resultPoints.length; i++) { 
    ResultPoint resultPoint = resultPoints[i]; 
    System.out.print(" [" + i + "]:"); 
    System.out.print(" x = " + resultPoint.getX()); 
    System.out.print(", y = " + resultPoint.getY()); 
    if (resultPoint instanceof FinderPattern) 
     System.out.print(", estimatedModuleSize = " 
       + ((FinderPattern) resultPoint).getEstimatedModuleSize()); 
    System.out.println(); 
} 

で私はこの出力を得る:

text: Hello World! 
resultPoints: 
    [0]: x = 36.5, y = 162.5, estimatedModuleSize = 9.0 
    [1]: x = 36.5, y = 36.5, estimatedModuleSize = 9.0 
    [2]: x = 162.5, y = 36.5, estimatedModuleSize = 9.0 

xyを中心にの座標であります正方形のファインダーパターン。 QRCode finder patternsのサイズが7x7モジュールであることを知り、 コーナー座標を簡単に計算できます。

+0

このコードは、QRコードが画像の大部分を占める場合にうまく機能します。私がスキャンしたいQRコードは、ページの左上隅にあり、コードはそれを検出することができないように非常に大きくはありません。あなたはこれのためのいくつかのソリューションを提案することができます。 –

+0

@PrakharGanesh今は全く別の問題です。 [TRY_HARDER](https://zxing.github.io/zxing/apidocs/com/google/zxing/DecodeHintType.html#TRY_HARDER)デコードヒントを追加すると、あなたの 'QRCodeReader'がうまく動作することがあります。 –

関連する問題