LoginSignup
18
18

More than 5 years have passed since last update.

CIDetectorを簡単に使うやつ

Posted at

これ

概要

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)

Simulator Screen Shot 2016.05.21 22.55.47.png

こんな感じ。

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18