我想在Pygame上访问我的网络摄像头拍照并保存它们但是每次我运行代码时都会这样做:
import pygame.camera
import pygame.image
import sys
pygame.camera.init()
cameras = pygame.camera.list_cameras()
print ("Using camera %s ..." % cameras[0])
webcam = pygame.camera.Camera(cameras[0])
webcam.start()
# grab first frame
img = webcam.get_image()
WIDTH = img.get_width()
HEIGHT = img.get_height()
screen = pygame.display.set_mode( ( WIDTH, HEIGHT ) )
pygame.display.set_caption("pyGame Camera View")
while True :
for e in pygame.event.get() :
if e.type == pygame.QUIT :
sys.exit()
# draw frame
screen.blit(img, (0,0))
pygame.display.flip()
# grab next frame
img = webcam.get_image()
我在IDLE中得到这个:
Traceback (most recent call last):
File "/Users/Victor/Documents/Python Related/Python Code for Class/blah.py", line 5, in <module>
pygame.camera.init()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pygame/camera.py", line 42, in init
from pygame import _camera
ImportError: cannot import name '_camera'
我做错了什么或我可以在Python上安装的其他模块可以通过设备的内部或外部网络摄像头拍照并存储或发送到需要的地方?
谢谢
答案 0 :(得分:1)
根据pygame.camera
的{{3}}:
Pygame目前仅支持Linux和v4l2相机。
看到你正在使用Mac而不是Linux,这不会起作用。对于将来,阅读您正在使用的库和模块的文档非常有帮助,因为通常会解决此类常见问题。
答案 1 :(得分:0)
您可以使用OpenCV这是一个强大的图像采集和操作工具。
OpenCV接受不同的语言,python就是其中之一,所以你只需要导入模块并创建一个获取图片并将图像返回到变量中的函数(或者你可以将图片存储在一个文件中,然后再读取它)。
看一下这个链接,了解如何使用openCV 2(和python 2.7)获取图像或视频
https://codeplasma.com/2012/11/02/getting-webcam-images-with-python-and-opencv/
或者如果您想使用最新的3.0-beta版本的openCV:
http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html
修改强>
要在Mac上安装OpenCV,您可以点击以下链接:
http://docs.opencv.org/2.4/doc/tutorials/introduction/ios_install/ios_install.html#ios-installation
PD:您也可以在Mac上安装Linux并加入opensource社区:)