Posts Tagged ‘OpenCV’

PythonでOpenCV オプティカルフロー編

土曜日, 3月 15th, 2008

半年ぐらい棚ざらしにしてあったのですが、ちょっと時間があったのでいじることに。(でも、最終成果物が出来るのは、さらに一年後ぐらい、かなぁ?orz)

<<追記>>
こちらの記事に続く

とりあえずcvCalcOpticalFlowBM関数のサンプルコードが動くようになったので無くさないようにblog保存。

ググる:オプティカルフローとは

ビデオカメラ、YouTubeやニコニコ動画などのFLVデータ、などなど
地デジが映るのもオプティカルフローのおかげ。

以下はコンピューターのプログラム&チラシの裏。

(続きを読む…)

Tags: , ,

GIMPで顔認識(Python経由でOpenCV)

木曜日, 12月 20th, 2007

こちらの記事の続き。

ほとんど、GIMPとOpenCVのサンプルコードのひきうつしですが。。。

あらかじめ、CVtypes.pyに、前述の記事のパッチをあてておく必要があります。

OpenCVサンプルコード内 haarcascadesフォルダを中身のxmlファイルごとGIMPプラグインフォルダにコピー。
以下のコードをcvfacedetect.pyという名前で、GIMPプラグインフォルダ(GIMP24\lib\gimp\2.0\plug-ins)に保存、GIMP次回起動時に認識される、はずです。

認識されていれば、GIMPで画像を開き、フィルターの中にOpenCVという階層が出来ます。その中のcvfacedetectを選ぶと、フィルタを実行します。

人物の顔が丸く選択されたら成功です。
実行自体は短いのですが、起動までに「か~な~り~」時間がかかるので実用性には欠けます。あくまでOpenCVを使ってみるサンプルコード、ということで。

卒業アルバムなど集合写真でやってみると、意外に引っかからない人が居たりして楽しかったり(汗
(続きを読む…)

Tags: , ,

「CVtypes.py」OpenCVをctypes経由で使う

水曜日, 12月 19th, 2007

自分が忘れた時のために、作業メモ

GIMP2.4 win32版のプラグインをPythonで書く インストール編の続きです。

OpenCVをインストール:

インストーラ版の場合

  • インストーラはOpenCV_1.0.exe
  • DLLをGIMPバイナリーのフォルダにコピー
  • GIMP-Pythonから呼び出す時の都合で、C:\Program Files\OpenCV\bin 以下のDLLファイルをgimp24.exeと同じフォルダにコピーします。
  • もっと良い方法が有ると思いますが。。。

ZIP版の場合

  • GIMPから使うだけなら、chopencv-2.5.0-win-binary.zip内のDLLをGIMP24.exeと同じフォルダにコピーするだけ。
  • これだけだと、他のPythonプログラムからはOpenCVが使えないかと思います。

CVtypes

Sourceforgeからダウンロードできます
アーカイブ中のCVtypes.pyを、
_Pythonをインストールしたフォルダ/Lib/site-packages
にコピーします。

パッチ

このままだと使いづらいので、私は以下のパッチをあてています。
CVtypes.pyの適当な行に以下を追加
_cvInpaint =cfunc(’cvInpaint’, _cvDLL, None,
_ (’src’, c_void_p, 1), # const CvArr* src
_ (’mask’, c_void_p, 1), # CvArr* dst
_ (’dst’, c_void_p, 1), # CvArr* dst
_ (’flags’, c_int, 1), # int flags
_ (’inpaintRadius’, c_double, 1), # double threshold1
_)

_def cvImageAsString(img):
_ btype = ctypes.c_char * img[0].imageSize
_ return btype.from_address(img[0].imageData)
_

使い方

http://OpenCV.jp などとの違い。
使うには、
_from CVtypes import cv

OpenCVのCVCreateImage(~)などの関数名は
_cv.CreateImage
と、cvピリオドが頭に付く形に。定数なども同様に。
具体的なサンプルコードは、次の記事で。

Tags: , ,