我有代码:
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但我仍然不知道如何有效地将它转换为 RGB 颜色的 numpy 数组。
最佳答案
用于从 class pygame.Surface
抓取 3D 图像数据, 使用 .array3d()
,正如文档所述 -
Copy pixels into a 3d array
array3d(Surface) -> array
因此,你可以做 -
imgdata = pygame.surfarray.array3d(img)
请注意,生成的 imgdata
可能会在高度和宽度切换的情况下出现。要解决这个问题,请像这样交换前两个轴 -
imgdata = imgdata.swapaxes(0,1)
关于python - 如何从 pygame.surface 获取 RGB 颜色的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34673424/