2013-11-14 70 views
2

我想通過python訪問我的攝像頭。不幸的是openCV由於網絡攝像頭而不工作。 Pygame.camera的工作原理是使用此代碼魅力:從pygame得到numpy數組

from pygame import camera,display 

camera.init() 
webcam = camera.Camera(camera.list_cameras()[0]) 
webcam.start() 

img = webcam.get_image() 

screen = display.set_mode((img.get_width(), img.get_height())) 
display.set_caption("cam") 

while True: 
    screen.blit(img, (0,0)) 
    display.flip() 
    img = webcam.get_image() 

我的問題是,現在,我怎樣才能從網絡攝像頭numpy的陣列?

+0

我無法從網絡攝像機跳轉到numpy數組 - 你想從圖像中獲得一個像素數組嗎? – thegrinner

回答

2

get_image返回Surface。根據http://www.pygame.org/docs/ref/surfarray.html,可以使用pygame.surfarray.array2d(或surfarray模塊中的其他功能之一)將Surface轉換爲numpy數組。例如。

img = webcam.get_image() 
    data = pygame.surfarray.array2d(img) 
+0

完美謝謝 –