【问题标题】:Read QR Code from still/static image从静止/静态图像中读取二维码
【发布时间】:2018-03-01 00:10:44
【问题描述】:

我正在开发一个应用程序,我必须从静止图像中读取 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 码,但有时它不适用于静止图像并返回空白数组。我进行了很多搜索,还看到了 Apple 论坛,他们也描述了我使用的相同代码。我还附上了未解码的图像。请任何人有任何类型的信息,然后与我分享。将不胜感激。提前致谢。

【问题讨论】:

  • 二维码的位置总是在左下角吗?
  • 否@YunCHEN:没必要,可以在左上角、右上角等。谢谢!

标签: ios objective-c iphone qr-code cidetector


【解决方案1】:

我刚刚在本地测试了您的图像,我可以确认,没有读取 QR 码。我相信你的问题是二维码。似乎徽标可能干扰了 CIDetector。我用另一个二维码替换了你的二维码,效果很好。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多