2012/07/12

python-opencvチュートリアル(2)

python-opencvのチュートリアル その2。
今日はトラックバーの付け方とガウシアンフィルタの掛け方です。

OpenCV 2.4.2で動作確認しています。

トラックバー


"""python-opencv tutorial
Create trackbar control.

Usage:
        03_trackbar.py
"""

#import opencv library
import cv2
import numpy

#Trackbar callback function
def onTrackbarChange(trackbarValue):
    imgshape=fullcolorimage.shape
    fimg=numpy.zeros(imgshape,numpy.uint8)
    colorval=trackbarValue*10
    diff=trackbarValue*10
    xcenter=imgshape[1]/2
    ycenter=imgshape[0]/2
    color=(colorval,colorval,colorval)
    cv2.rectangle(fimg, (xcenter-diff, ycenter-diff), (xcenter+diff, ycenter+diff), color, -1)
    cv2.imshow(windowName, fimg)

imgwidth=640
imgheight=480
fullcolorimage = numpy.zeros((imgheight,imgwidth,3),numpy.uint8)

windowName="TrackbarSample"
cv2.namedWindow(windowName)
onTrackbarChange(0)

#createTrackbar(...)
#    createTrackbar(trackbarName, windowName, value, count, onChange) -> None
cv2.createTrackbar( 'Trackbarname', windowName, 0, 25, onTrackbarChange )

cv2.waitKey()
cv2.destroyAllWindows()




ガウシアンフィルタの例

"""
python-opencv tutorial
Gaussian filter sample script.
Usage:
        04_smooth.py imagename
"""

#import opencv library
import cv2
import sys
import numpy

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()

#GaussianBlur(...)
#    GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst
# ksize must pair of odd. (5,5),(7,7),(9,9)...
bluredimg=cv2.GaussianBlur(img,(11,11),0)

cv2.imshow('Gaussian',bluredimg)
cv2.imshow('Source',img)

cv2.waitKey(0)
cv2.destroyAllWindows()


以前はcvSmoothの引数でCV_GAUSSIAN的なものを指定していたのですが、ガウシアンが独立した関数になったようですね。

チュートリアルが貯まってきたらgitHubかどこかにあげようかな〜と思います。
ではまた。

0 件のコメント:

コメントを投稿