我正在开发一个带有AVFoundation的项目,在那里我可以检测到面部并在图片中添加内容(在拍照之前)。我已经实现了预览图层和图像捕获。
我的问题是,如何引入面部检测并获取面部对象的框架/位置?是否可以在预览图层上添加一些内容,以便在图片中捕获它(想想新的Snapchat过滤器)?
TIA
答案 0 :(得分:5)
您可以使用AvCaptureMetadataOutput获取在框架中找到的元数据:
func captureOutput(captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [AnyObject]!, fromConnection connection: AVCaptureConnection!) {
for metadataObject in metadataObjects as [AVMetadataObject] {
if metadataObject.type == AVMetadataObjectTypeFace {
var transformedMetadataObject = previewLayer.transformedMetadataObjectForMetadataObject(metadataObject)
}
}
}
然后你可以从transformedMetadataObject.bounds