2017-09-20 4 views
0

스틸 이미지에서 QR 코드를 읽어야하는 앱에서 작업 중입니다. 나는 QR 코드를 읽는 데 사용했던 코드는 다음과 같은 :정적/정적 이미지에서 QR 코드 읽기

CIImage *ciimage = [CIImage imageWithCGImage:[getRotatedImage CGImage]]; 

NSDictionary *detectorOptions = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh }; 
      CIDetector *faceDetector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:detectorOptions]; 

NSArray *features = [faceDetector featuresInImage:ciimage]; 
      CIQRCodeFeature *faceFeature; 
      for(faceFeature in features) 
      { 
       NSString *str = [NSString stringWithFormat:@"%@",faceFeature.messageString]; 
       break; 
      } 

이 코드는 일부 QR 코드에 대해 잘 작동하지만 약간의 시간은 정지 영상 작업과 빈 배열을 반환하지 않습니다. 나는 많은 것을 수색했으며, 그들이 사용했던 것과 동일한 코드를 설명한 애플 포럼도 보았다. 디코딩되지 않은 이미지도 첨부하고 있습니다. enter image description here 어떤 신체든지 이것에 관하여 어떤 유형의 정보든지 가지고 있고 저와 공유하십시오. 매우 감사하겠습니다. 미리 감사드립니다.

+0

이 왼쪽 하단 모서리에 항상 QRCode의 위치를인가? –

+0

아니요 @ 윤춘 : 꼭 필요한 것은 아니며 왼쪽 상단 구석, 오른쪽 상단 구석 등에있을 수 있습니다. 감사합니다! – Vishal

답변

0

로컬에서 이미지를 테스트 한 결과, QR 코드를 읽을 수 없음을 확인했습니다. 나는 당신의 문제가 QR 코드라고 믿습니다. 로고가 CIDetector를 방해하고있는 것 같습니다. 귀하의 QR 코드를 다른 QR 코드로 바꿨습니다.

UIImage *image = [UIImage imageNamed:@"qr3"]; 
    CIImage *ciimage = [CIImage imageWithData:UIImageJPEGRepresentation(image, 1.0f)]; 

    NSDictionary *detectorOptions = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh }; 
    CIDetector *faceDetector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:detectorOptions]; 

    NSArray *features = [faceDetector featuresInImage:ciimage]; 
    CIQRCodeFeature *faceFeature; 
    for(faceFeature in features) { 
     NSString *str = [NSString stringWithFormat:@"%@",faceFeature.messageString]; 
     NSLog(@"Found feature: %@", str); 
     break; 
    } 

이 기록합니다 Found feature: http://en.m.wikipedia.org

enter image description here