2017-03-26 1 views

답변

1

정확하게 추출 할 모서리 좌표를 모르겠습니다. 그러나 나는 Result.getResultPoints() 메서드에서 얻은 결과 지점에서 계산할 수 있다고 확신합니다.

예 :

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은 중심이 좌표 다음 이미지 (200x200 크기의 픽셀) 및 코드로

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(); 
} 

I이 출력을 얻을 사각형 파인더 패턴. 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'가 더 잘 작동 할 수 있습니다. –

관련 문제