mat*_*usc 8 python arrays pygame numpy
我有代码:
import pygame.camera
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
Run Code Online (Sandbox Code Playgroud)
img变量是
<Surface(640x480x24 SW)>
Run Code Online (Sandbox Code Playgroud)
我从pygame找到了get numpy数组,但我仍然不知道如何将它有效地转换为numpy RGB颜色数组.
要从中获取3D图像数据class pygame.Surface,请使用.array3d()以及文档状态 -
将像素复制到3d数组中
array3d(Surface) - >数组
因此,你可以这样做 -
imgdata = pygame.surfarray.array3d(img)
Run Code Online (Sandbox Code Playgroud)
请注意,结果imgdata可能会显示高度和宽度切换.要解决这个问题,交换前两个轴,就像这样 -
imgdata.swapaxes(0,1)
Run Code Online (Sandbox Code Playgroud)