2012-07-09 17 views
9

Chcę załadować obraz z kamery wyświetlany na pygame Używam VideoCaptureJak wyświetlić obraz w 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) 

Dlaczego nie work.Pygame otwarte okno, ale nic nie wyświetla?

+0

jest obraz o nazwie 1.jpg i w tym samym folderze? –

+0

koleś, jeśli spojrzysz na kod, który widzisz, saveSnapshot (str (In) + ".jpg") – Rasovica

+0

możesz użyć 'pygame.camera' do zrobienia zdjęć i usunięcia zależności od' VideoCapture' – steffen

Odpowiedz

13

Musisz powiedzieć pygame update the display.

Dodaj następujący wiersz w pętli po blittingiem obraz na ekranie:

pygame.display.flip() 

BTW, prawdopodobnie chcesz, aby ograniczyć ile zdjęć wziąć na sekundę. Użyj time.sleep lub 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

Powinieneś zaimportować pygame .time' zamiast tylko 'time'. Jeden (to znaczy ja) może zmylić go z modułem bibliotecznym Python 'time'. Ponadto: co zrobić, jeśli zdecydujesz się na późniejszy import modułu bibliotecznego 'time'? – steffen

Powiązane problemy