同志,
我想用Python从笔记本电脑相机中捕捉图像。目前所有迹象都指向OpenCV。问题是OpenCV是一个安装的噩梦,每次在新系统上重新安装代码时都会再次发生噩梦。
是否有更轻量级的方法来捕获Python中的相机数据?我正在寻找能够产生效果的东西:
$ pip install something
$ python
>>> import something
>>> im = something.get_camera_image()
我在Mac上,但欢迎任何平台上的解决方案。
答案 0 :(得分:3)
作为the documentation states,目前pygame.camera
仅支持linux和v4l2摄像头,因此这不适用于macOS。在Linux上它可以正常工作。
答案 1 :(得分:2)
我在使用pygame之前已经这样做了。但我似乎无法找到我使用的脚本......似乎有一个教程here使用本机相机模块而不依赖于OpenCV。
试试这个:
import pygame
import pygame.camera
from pygame.locals import *
pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/path/to/camera",(640,480))
cam.start()
image = cam.get_image()
如果您不知道相机的路径,您还可以获得所有可用的列表,其中应包括您的笔记本电脑摄像头:
camlist = pygame.camera.list_cameras()
if camlist:
cam = pygame.camera.Camera(camlist[0],(640,480))
答案 2 :(得分:1)
您可以使用pyavfcam github。首先需要安装xcode和cython。这是官方演示。
import pyavfcam
# Open the default video source
cam = pyavfcam.AVFCam(sinks='image')
cam.snap_picture('test.jpg')
print "Saved test.jpg (Size: " + str(cam.shape[0]) + " x " + str(cam.shape[1]) + ")"
答案 3 :(得分:1)
我过去曾经使用过videocapture,它很完美:
from VideoCapture import Device
cam = Device()
cam.saveSnapshot('image.jpg')