从pygame获取numpy数组

4

我希望能够通过Python访问我的网络摄像头。不幸的是,由于网络摄像头的原因,openCV无法正常工作。使用以下代码,Pygame.camera可以完美地解决这个问题:

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数组?

我在从网络摄像头转换到numpy数组方面遇到了麻烦 - 你是想从图像中获取像素数组吗? - thegrinner
1个回答

5
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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接