2012/07/09

python-opencvチュートリアル

OpenCV2.4.2のサンプルコードを眺めていると、pythonのサンプルコードが増えていることに気がつきました。エッジ検出や顔検出のサンプルコードを動かして見たところ、サクサク動いたのでスクリプトだから遅くなるという訳ではないようです。

python2のフォルダにあったサンプルで、エラーが出なかったコードの一覧は以下のとおり。

browse.py  4096x4096の画像を縮小したものの一部にカーソルを当てると、その部分が拡大される。マウスイベントのサンプル?
calibrate.py カメラのキャリブレーション
color_histogram.py 色ごとのヒストグラム。
contours.py 輪郭検出
digits.py SVNを使った手書き文字認識。認識できなかったものを赤く表示?
digits_video.py Webカメラで撮影した画像から文字認識。処理の速さと認識率にびっくり
edge.py webカメラ画像の輪郭検出
feature_homography.py 2つの画像間の特徴点を比較して、ホモグラフィ行列を計算する。特徴点を検出している割にはかなり速い
fitline.py 複数のフィッティング手法を切り替えてラインフィッティング
gaussian_mix.py ランダムな点列をグループ化
kmeans.py k-meanによるクラスタリング。よくわかりません
lappyr.py ラプラシアンピラミッドによる画像フィルタ。どういう効果があるのかは分かりません
lk_homography.py オプティカルフローによる追跡
motempl.py 動体検知
mser.py 領域分割。 自動塗り絵とかに使えそう
opt_flow.py オプティカルフロー
turing.py 同じものを敷き詰めてもつなぎ目が分からないランダムな画像を生成
video.py スペースを押したらWebカメラの画像のキャプチャを保存する
video_dmtx.py Matrixコードを読み込む
video_threaded.py マルチスレッドによる動画処理



BeagleBoneのGPIO制御もpythonでやることにしたので、練習がてらpython-opencvのチュートリアルを作ってみることにしました。BeagleBoneにWebカメラをつないで、サーボを使って追尾システムとか作れるぐらいになれればいいな~と思っています。



チュートリアル00 画像の読み込み
'''
python-opencv tutorial
Load image file from disk.
Usage:
 00_loadImage.py imagefile
'''

#import opencv library
import cv2
import sys

argvs=sys.argv
if (len(argvs) != 2):
    print 'Usage: # python %s filename' % argvs[0]
    quit()

imagefilename = argvs[1]
try:
    img=cv2.imread(imagefilename, 1)
except:
    print 'faild to load %s' % imagefilename
    quit()

#show image
windowName= 'LoadImage'
cv2.imshow(windowName, img)
print 'Press any key to exit.'

cv2.waitKey(0)

チュートリアル01 リサイズと色変換
'''
python-opencv tutorial
Resize image to half size and
convert to gray scale image.
Usage:
    01_resize_and_convertColor.py imagefile
'''

#import opencv library
import cv2
import sys

argvs=sys.argv
if (len(argvs) != 2):
    print 'Usage: # python %s filename' % argvs[0]
    quit() 

imagefilename = argvs[1]
try:
    img=cv2.imread(imagefilename, 1)
except:
    print 'faild to load %s' % imagefilename
    quit()

#define small image size
imgsize=img.shape

#imgsize = (height,width,depth)

simg_width=imgsize[1]/2
simg_height=imgsize[0]/2

#half size image and grayscaled image
simg=cv2.resize(img,(simg_width,simg_height))
gimg=cv2.cvtColor(simg,cv2.COLOR_BGR2GRAY)

cv2.imshow('Half size',simg)
cv2.imshow('Grayscaled',gimg)

print 'Press any key to exit.'
cv2.waitKey(0)



ではまた。

0 件のコメント:

コメントを投稿