【发布时间】:2016-01-24 20:33:35
【问题描述】:
我正在尝试使用 CIDetector 从 UIImage 中检测 QRCode,以便从中提取 messageString。
我有一个函数,它基本上接收 UIImage 作为输入并返回解码后的 messageString。
我传递给此函数的 UIImage 是使用 PHAsset、PHAssetCollection、PHImageRequestOptions 等从用户库中提取的。请求是同步发出的,我得到的所有图像质量都很好(我试图展示图像在 UIImageView 中只是为了确保图像可读)。
在这里您可以看到请求图像的代码的 sn-p:
let _: PHImageRequestID = PHImageManager.defaultManager().requestImageForAsset(asset as! PHAsset, targetSize: size, contentMode: PHImageContentMode.AspectFit, options: options, resultHandler: { (image: UIImage?, info:[NSObject : AnyObject]?) -> Void in
images.append(image!)
})
获取图像后,我想检测二维码,我正在使用以下代码:
func scanImage(image: CIImage) -> String {
let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy:CIDetectorAccuracyHigh])
var image = CIImage(image: uiimage)
var decode = ""
let features = detector.featuresInImage(image!)
for feature in features as! [CIQRCodeFeature] {
decode = feature.messageString
}
return decode
}
我发现了这个 (Core Image Detector(CIDetector) is not detecting QRCodes) 和其他类似的问题,但它们似乎都不起作用。
这是我遵循的教程https://www.shinobicontrols.com/blog/ios8-day-by-day-day-13-coreimage-detectors
我是不是做错了什么?
提前致谢
【问题讨论】:
标签: ios swift uiimage ios9 qr-code