Python:访问没有OpenCV的摄像头

时间:2016-08-17 17:41:23

标签: python macos camera

同志,

我想用Python从笔记本电脑相机中捕捉图像。目前所有迹象都指向OpenCV。问题是OpenCV是一个安装的噩梦,每次在新系统上重新安装代码时都会再次发生噩梦。

是否有更轻量级的方法来捕获Python中的相机数据?我正在寻找能够产生效果的东西:

$ pip install something
$ python
>>> import something
>>> im = something.get_camera_image()

我在Mac上,但欢迎任何平台上的解决方案。

4 个答案:

答案 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)

Windows视频捕捉

我过去曾经使用过videocapture,它很完美:

from VideoCapture import Device
cam = Device()
cam.saveSnapshot('image.jpg')