我有代码:
import pygame.camera
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
img变量是
<Surface(640x480x24 SW)>
我找到了get numpy array from pygame,但我仍然不知道如何将它有效地转换为numpy RGB颜色数组。
答案 0 :(得分:5)
要从class pygame.Surface
抓取3D图像数据,请使用.array3d()
,以及文档状态 -
将像素复制到3d数组
array3d(Surface) - &gt;阵列
因此,你可以做 -
imgdata = pygame.surfarray.array3d(img)
请注意,生成的imgdata
可能会显示高度和宽度切换。要解决这个问题,请交换前两个轴,如下所示 -
imgdata.swapaxes(0,1)