Я решаю задачу сканирования фронтального входа камеры для лиц, обнаруживая их и получая их как UIImage -объекты. Я использую AVFoundation для сканирования и обнаружения лиц.(howto) Получите лицо от входных данных до передней камеры как UIImage
Как это:
let input = try AVCaptureDeviceInput(device: captureDevice)
captureSession = AVCaptureSession()
captureSession!.addInput(input)
output = AVCaptureMetadataOutput()
captureSession?.addOutput(output)
output.setMetadataObjectsDelegate(self, queue: dispatch_get_main_queue())
output.metadataObjectTypes = [AVMetadataObjectTypeFace]
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
videoPreviewLayer?.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer!)
captureSession?.startRunning()
В методе делегата didOutputMetadataObjects я получаю лицо, как AVMetadataFaceObject и highliting его с красной рамкой, как это:
let metadataObj = metadataObjects[0] as! AVMetadataFaceObject
let faceObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj)
faceFrame?.frame = faceObject!.bounds
Вопрос: Как может Я получаю лица как UIImages?
Я пытался танцевать над «didOutputSampleBuffer», но это не называется вообще: с
пробовал много с вашим предложением. «скриншот» возвращает пустое изображение, как я понял, следующую часть кода - откуда взялось «originalImage»? вот код, который у меня есть: http://pastebin.com/M2CFPzDj (face = screenshot()). Он всегда имеет разные размеры и длину, но как изображение пуст: c – SwiftStudier
и какие координаты и размер должны быть в cropRect? изначальный.x/y и размер.width/высота из faceFrameView? – SwiftStudier
аварии на let imageRef = CGImageCreateWithImageInRect (contextImage.CGImage, cropRect)! – SwiftStudier