2016-05-17 14 views
0

Ich arbeite an einem Projekt mit AVFoundation, wo ich Gesichter erkennen und etwas zum Bild hinzufügen kann (bevor ich das Bild mache). Ich habe den Vorschau-Layer und die Bilderfassung implementiert.AVFoundation Gesichtserkennung Frame

Meine Frage, wie führe ich die Gesichtserkennung ein und bekomme den Rahmen/Ort des Gesichtsobjekts? Ist es möglich, etwas über der Vorschauebene hinzuzufügen, sodass es auch im Bild erfasst wird (denken Sie an die neuen Snapchat-Filter)?

TIA

+1

haben Sie ausgecheckt squareCam Projekt von Apple? https://developer.apple.com/library/ios/samplecode/SquareCam/Introduction/Intro.html Dies hat Gesichtserkennung darin. – Ro4ch

Antwort

4

Sie können AvCaptureMetadataOutput verwenden, um Metadaten in Rahmen gefunden zu erhalten:

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) 
     } 
    } 
} 

Dann können Sie Gesicht Rechteck von transformedMetadataObject.bounds erhalten