2012-07-09 12 views
9

voglio caricare un'immagine da webcam da visualizzare sul pygame sto usando videocaptureCome visualizzare l'immagine in 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) 

Perché questa finestra non si apre work.Pygame ma visualizza nulla?

+0

è la tua immagine chiamato 1.jpg e nella stessa cartella? –

+0

amico se guardi il codice che vedi saveSnapshot (str (In) + ". Jpg") – Rasovica

+0

puoi usare 'pygame.camera' per scattare le foto e rimuovere la dipendenza da' VideoCapture' – steffen

risposta

13

Devi dire a pygame a update the display.

Aggiungere la seguente riga nel vostro ciclo dopo copiarlo sul video l'immagine allo schermo:

pygame.display.flip() 

BTW, probabilmente avrete bisogno di limitare la quantità di immagini si prende al secondo. Utilizzare time.sleep o 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 
+1

Devi 'importare pygame .time' invece di solo 'time'. Uno (cioè io) può confonderlo con il 'time' del modulo della libreria Python. Inoltre: cosa succede se decidi di importare il modulo della libreria 'time' dopo? – steffen