2016-08-17 95 views
0

同志,Python:没有OpenCV的访问摄像头

我想从Python笔记本电脑摄像头捕获图像。目前所有迹象都指向OpenCV。问题在于OpenCV是安装的噩梦,每次在新系统上重新安装代码时都会重新出现这种噩梦。

是否有更轻量级的方式来捕捉Python中的相机数据?我正在寻找的东西的效果:

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

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

+1

http://stackoverflow.com/a/11094891/5008845 – Miki

+0

没有直接回答到** **没有,但如果你有安装OpenCV的问题适用于Windows,你可以尝试的http://www.lfd.uci .edu /〜gohlke/pythonlibs /#opencv whl二进制包 – Dawid

回答

1

我在使用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)) 
+0

嗯,至少在我pygame安装我得到'文件“/Library/Python/2.7/site-packages/pygame/camera.py”','线42, in'' 'import _camera' 'ImportError:'camera.init()'行中没有名为_camera的模块。 – Peter

+0

有趣,尝试编辑答案。将导入更改为本教程编写的内容。 – pbreach

+0

仍然一样,但这可能与我没有正确安装pygame有关。 – Peter

0

您可以使用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]) + ")"