2011
05
24
05
24
Webカメラで取得した画像をOpenCVで編集して、Pygameで表示
OpenCVに用意されているShowImageを使ってウィンドウを作ると、
DestroyWindowでウィンドウを閉じなきゃならんのだろうか。
バーにある閉じるボタンをクリックしてもエラー終了。これは気に入らない。
pythonリファレンスの2.2ではGetWindowHandleも見当たらないようで。
じゃあGTKなりQtなりを使わねばということなのだろうけど、
まずは手軽にPygameでやってみた。
CreateCameraCaptureをpygame.initの前に持ってきたり、
whileループの中にpygame.event.getを持ってこなければならんらしい。
この辺を分かっていなかったので、途中で何度もterminateされた。

OpenCVまとめ
DestroyWindowでウィンドウを閉じなきゃならんのだろうか。
バーにある閉じるボタンをクリックしてもエラー終了。これは気に入らない。
pythonリファレンスの2.2ではGetWindowHandleも見当たらないようで。
じゃあGTKなりQtなりを使わねばということなのだろうけど、
まずは手軽にPygameでやってみた。
CreateCameraCaptureをpygame.initの前に持ってきたり、
whileループの中にpygame.event.getを持ってこなければならんらしい。
この辺を分かっていなかったので、途中で何度もterminateされた。

#!/usr/bin/env python
import sys
import cv
import pygame
from pygame.locals import *
if __name__ == '__main__':
capture = cv.CreateCameraCapture(int(0))
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH, 640)
pygame.init()
window = pygame.display.set_mode((640,480))
pygame.display.set_caption("hoge")
wm_info = pygame.display.get_wm_info()
handle = wm_info['window']
screen = pygame.display.get_surface()
img_rgb=cv.CreateMat(480,640,cv.CV_8UC3)
if capture:
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.time.delay(int(1000 * 1.0/30))
frame = cv.QueryFrame(capture)
cv.CvtColor(frame, img_rgb, cv.CV_BGR2RGB)
pg_img = pygame.image.frombuffer(img_rgb.tostring(), cv.GetSize(img_rgb), "RGB")
screen.blit(pg_img, (0,0))
pygame.display.update()
OpenCVまとめ
スポンサーサイト