pyg併用で。
cam.py
#!/usr/bin/python3
from pyg import *
import pygame.camera as camera
camera.init()
cams = camera.list_cameras()
cam = camera.Camera(cams[0])
cam.start()
setSize((320,240),(320,240))
def loop():
img = cam.get_image()
putImage(img,(0,0))
run()
Raspberry Pi A+ (256)にカメラモジュールを繋いで動作させた。
REPLでカメラの動作だけ見てみる。
>>> import pygame.camera
>>> pygame.camera.init()
>>> pygame.camera.start()
>>> cams = pygame.camera.list_cameras()
>>> cams
['/dev/video0', '/dev/video10', '/dev/video11', '/dev/video12']
なんだか4つもデバイスが認識している。
ひょっとするとカメラのモードごとに別のデバイスとして認識しているのかもしれないのでそれを探る。
>>> cam = pygame.camera.Camera(cams[0])
>>> cam.get_size()
(640, 480)
>>> cam.get_controls()
(False, False, 0)
>>> cam = pygame.camera.Camera(cams[1])
>>> cam.get_size()
(640, 480)
>>> cam.get_controls()
(False, False, 0)
>>> cam = pygame.camera.Camera(cams[2])
>>> cam.get_size()
(640, 480)
>>> cam.get_controls()
(False, False, 0)
>>> cam = pygame.camera.Camera(cams[3])
>>> cam.get_size()
(640, 480)
>>> cam.get_controls()
(False, False, 0)
全部一緒だった。 ちょっとよくわからないけどひとまず利用は可能ということで。
Raspberry Pi A+(256)で新しいpygを動作させたところ描画に少々問題があった。
pyg/core.pyの17行目を
このようにすることで一応回避は出来た。ただ旧タイプのpygに比べると動作がかなり重く感じる。
仕組みとしてちょっといまいちなのかもしれない。考える必要あり。