ctypes-opencvを使ってみる

http://code.google.com/p/ctypes-opencv/
PythonOpenCVのラッパーctypes-opencvを使ってみる。
なんでもOpenCVに付属しているswigベースのラッパーは

  • メモリ管理に矛盾がある
  • それゆえ大きいプロジェクトに適していない
  • メンテと開発が難しい

らしいです。

ctypes-opencvの特徴はこんな感じ。

  • ピュアPython
  • Python的インターフェース.オブジェクトは使われなくなったら削除されるので、cvRelease...()を呼ぶ必要がない
  • 1.0と1.1pre OpenCVをサポート


とりあえず画像を読み込んで表示させてみる。

import sys
from opencv import *

if __name__ == '__main__':
	filename = "test.jpg"
	win_name = "window"
	
	if len(sys.argv) > 1:
		filename = sys.argv[1]
	
	image = cvLoadImage(filename)
	
	if not image:
		print "Error loading image '%s'" % filename
		sys.exit(-1)
	
	cvNamedWindow(win_name, CV_WINDOW_AUTOSIZE)
	cvShowImage(win_name, image)
	cvWaitKey(0)