【发布时间】:2017-08-03 21:15:02
【问题描述】:
我在 IOS 上使用CoreImage 来检测图像中的人脸。当有多个面孔时它可以正常工作,但不适用于像这样的简单面孔:
脸确实很大很明显,但是CoreImage却检测不到。
我想可能是因为我的kCGImagePropertyOrientation。
我将它设置为 5,只是因为这是在线教程所做的。
但是,我正在处理的图像是用户上传的,所以我事先不知道面部的方向。
有没有办法尝试所有方向?
当事先不知道图像时,实现CoreImage 面部检测的正确方法是什么?
这是我的代码:
var imageOptions = Dictionary<String,Any>()
imageOptions[CIDetectorImageOrientation] = 5
imageOptions[CIDetectorSmile] = true
let image = CIImage(cgImage: imageView.image!.cgImage!)
let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy)
let faces = faceDetector?.features(in: image, options: imageOptions as? [String : AnyObject])
【问题讨论】:
-
面部检测仅适用于指定的方向,如果您想允许处理任何类型的方向,您可能必须从图像元数据本身读取方向,然后将该方向传递给您的过滤器。
标签: ios core-image