如何从pygame.surface获取numpy RGB颜色数组

时间:2016-01-08 09:24:30

标签: python arrays numpy pygame

我有代码:

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颜色数组。

1 个答案:

答案 0 :(得分:5)

要从class pygame.Surface抓取3D图像数据,请使用.array3d(),以及文档状态 -

  

将像素复制到3d数组

     

array3d(Surface) - &gt;阵列

因此,你可以做 -

imgdata = pygame.surfarray.array3d(img)

请注意,生成的imgdata可能会显示高度和宽度切换。要解决这个问题,请交换前两个轴,如下所示 -

imgdata.swapaxes(0,1)