11

ウェブカメラから画像を読み込んで、ビデオキャプチャを使用しているpygameに表示したい

from VideoCapture import Device
import pygame
import time
In=1
pygame.init()
w = 640
h = 480
size=(w,h)
screen = pygame.display.set_mode(size) 

while True:
    cam = Device()
    cam.saveSnapshot(str(In)+".jpg") 
    img=pygame.image.load(In)
    screen.blit(img,(0,0))
    In=int(In)+1
    In=str(In)

これが機能しないのはなぜですか.Pygameウィンドウが開きますが、何も表示されませんか?

4

1 に答える 1

17

表示を更新するように pygame に指示する必要があります。

画像を画面にブリットした後、ループに次の行を追加します。

pygame.display.flip()

ところで、おそらく、1 秒間に撮影する画像の量を制限したいと思うでしょう。time.sleepまたはpygame clockを使用します。


from VideoCapture import Device
import pygame
import time
In=1
pygame.init()
w = 640
h = 480
size=(w,h)
screen = pygame.display.set_mode(size) 
c = pygame.time.Clock() # create a clock object for timing

while True:
    cam = Device()
    filename = str(In)+".jpg" # ensure filename is correct
    cam.saveSnapshot(filename) 
    img=pygame.image.load(filename) 
    screen.blit(img,(0,0))
    pygame.display.flip() # update the display
    c.tick(3) # only three images per second
    In += 1
于 2012-07-09T07:37:50.323 に答える