« iPhoneゲームアプリ開発セミナー『人気ゲームアプリから見る 3つの成功ポイント』開催します! | メイン | 明日、CodeZine主催の無料セミナー開催 »

PythonでOpenCV2.1を試した

こんにちは。

少し前にPythonのことをしらべていましたら、OpenCVが結構簡単に使えることがわかって早速やってみました。普段Perlを使うことが多いのですがこういうC系のモジュールになると、自分の力不足ですが、Win32にうまくインストールできないことがおおいのです。 Pythonだとスゴイ簡単にインストールできました。

OpenCV.jp
http://opencv.jp/

にいってWindows版をインストールすると

C:\OpenCV2.1\Python2.6\Lib\site-packages

というフォルダに

  • cv.lib
  • cv.pyd

というのができるので、これをPythonの

C:\Python\Lib\site-packages

にいれるだけ、っぽいです。

このサイトを参考にテストスクリプトを書きました。

http://my.opera.com/tanoue/blog/2010/05/29/python-opencv

[face_detect.py]

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os
import cv

def detectObjects(image):
  # load cascade file
  cascade = cv.Load(
    'C:/OpenCV2.1/data/haarcascades/haarcascade_frontalface_alt.xml')
  faces = cv.HaarDetectObjects(image, cascade, cv.CreateMemStorage(0))

  if faces:
    # すべての認知された顔に対して
    for (x,y,w,h),n in faces:
      # 枠を描く
      cv.Rectangle(image, (x,y), (x+w,y+h), cv.CV_RGB(255,0,0), 2)

  cv.SaveImage("new_faces.jpg", image)


def main():
  imagename = "faces.jpg"
  image = cv.LoadImage(imagename);
  detectObjects(image)

if __name__ == "__main__":
  main()

faces.jpgにはこれを使いました。

faces.jpg

できあがったのがこれです。国籍関係なく認識しております。

new_faces.jpg

Loadのところでは認識パターンのファイルが、例えば「前向きの顔」であれば「haarcascade_frontalface_alt.xml」という感じですでにXMLデータで用意されているので、それをつかえばひとまずのところはできるようです。チューニングしたければ自分で後でやると。

Pythonならインストールから実行までスゴイ簡単でしたので、簡単なWebサービスなんかもすぐできそうです。

スポンサーサイト