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



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

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

OpenCVをインストール:

インストーラ版の場合
  • インストーラはOpenCV_1.0.exe
  • DLLをGIMPバイナリーのフォルダにコピー
  • GIMP-Pythonから呼び出す時の都合で、C:Program FilesOpenCVbin 以下の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: , ,

Related posts

タグ: , ,

コメントは受け付けていません。