2016-05-17 2 views
0

Я работаю над проектом с AVFoundation, где я могу обнаруживать лица и добавлять что-то к картинке (прежде чем делать снимок). Я реализовал слой предварительного просмотра и захват изображения.AVFoundation Face Detection Frame

Мой вопрос, как мне узнать об обнаружении лица и получить раму/местоположение объекта лица? Можно ли добавить что-то поверх слоя предварительного просмотра, чтобы оно также было захвачено на картинке (подумайте о новых фильтрах snapchat)?

ТИА

+1

вы проверили проект squareCam от Apple? https://developer.apple.com/library/ios/samplecode/SquareCam/Introduction/Intro.html В этом есть обнаружение лиц. – Ro4ch

ответ

4

Вы можете использовать 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