在vidcap python27中捕获视频/图像时出错

时间:2014-01-25 16:20:39

标签: python python-2.7 pygame

当我输入此代码时:

import pygame.camera
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
import pygame.image
pygame.image.save(img, "photo.bmp")
pygame.camera.quit()

我收到错误:但我可以看到我的网络摄像头灯亮了......

Traceback (most recent call last):
  File "C:\Users\ibrahim\Desktop\Bill2.py", line 7, in <module>
    pygame.image.save(img, "photo.bmp")
TypeError: must be pygame.Surface, not None

1 个答案:

答案 0 :(得分:3)

我认为你的平台是win32,所以pygame导入的Camera类位于Python27\Lib\site-packages\pygame\_camera_vidcapture.py。看起来方法Camera.get_image()没有返回表面,这可能是因为此方法在内部使用的pygame.image模块尚未初始化。

我建议您首先初始化模块,然后获取图像以最终保存它。我还建议您删除相机对象并退出模块。

import pygame.camera
import pygame.image

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
pygame.image.save(img, "photo.bmp")
del cam
pygame.camera.quit()
pygame.quit()

PS:在我的机器上,我必须在self.dev.setresolution(width, height)中对语句Camera.__init__发表评论,因为它对我的网络摄像头有效。