これ
概要
CIDetectorは座標の変換とか、仮描画とかが面倒なのでその辺をいい感じにするやつ
使い方
検出する
let image = UIImage()
let faces = FaceDetector().detect(image)
で顔を検出する。facesはFace構造体の配列で以下のような構成
struct Face {
private(set) var rect: CGRect!
private(set) var mouth: CGPoint? = nil
private(set) var leftEye: CGPoint? = nil
private(set) var leftEyeClosed = false
private(set) var rightEye: CGPoint? = nil
private(set) var rightEyeClosed = false
private(set) var hasSmile = false
private(set) var faceAngle: Float? = nil
private(set) var knownPerson = false
var hasMouth: Bool { return mouth != nil }
var hasLeftEye: Bool { return leftEye != nil }
var hasRightEye: Bool { return rightEye != nil }
init(faceRect: CGRect) {
self.rect = faceRect
}
}
ここでのCGPointは普通に使える座標になっている。(上下反転してないやつ)
顔の位置をUIImageに焼く
let after = FaceDetector.displayDetectedPosition(beforeImage, faces: faces)
こんな感じ。