node-opencvを使うとNodeでも画像から顔認識ができます。
brewを使ってOpenCVをインストールしてから、npmでnode-opencvをインストールします。Make時にMono.frameworkが悪さをするので一旦待避。 あとカスケードファイルもコピー。
$ sudo mv /Library/Frameworks/Mono.framework /tmp $ brew -v install --build32 opencv $ mv /tmp/Mono.framework /Library/Frameworks/ $ npm install opencv $ cp ../../../node_modules/opencv/data/haarcascade_frontalface_alt.xml .
以下のようにコードを書きます。
cv = require("opencv") cv.readImage "./faces.png", (err, im) -> im.detectObject "./haarcascade_frontalface_alt.xml", {}, (err, faces) -> i = 0 while i < faces.length x = faces[i] im.ellipse x.x + x.width / 2, x.y + x.height / 2, x.width / 2, x.height / 2 i++ im.save "./out.jpg"
適当に顔画像を用意します。
実行。
$ coffee sample.coffee
out.pngができているので見てみると
な感じに。若干ズレているところもありますが、Webと組み合わせると面白そうです。
0 件のコメント:
コメントを投稿