如何在Python中访问我的摄像头?

我想从Python访问我的摄像头。

我尝试使用VideoCapture扩展( 教程 ),但是对我来说这并不是很好,我不得不解决一些问题,比如320×230的分辨率有点慢,有时候没有明显的原因返回None

有没有更好的方式从Python访问我的摄像头?

OpenCV支持从networking摄像头获取数据,默认情况下它带有Python包装,您还需要为OpenCV Python扩展(称为cv2 )安装numpy来运行。
在撰写本文时(2015年1月),还没有Python 3的支持,所以你需要使用Python 2。

有关在Python中使用OpenCV的更多信息 。

从使用opencv和python显示networking摄像头源中复制的示例:

 import cv2 cv2.namedWindow("preview") vc = cv2.VideoCapture(0) if vc.isOpened(): # try to get the first frame rval, frame = vc.read() else: rval = False while rval: cv2.imshow("preview", frame) rval, frame = vc.read() key = cv2.waitKey(20) if key == 27: # exit on ESC break cv2.destroyWindow("preview") 

这应该是@John Montgomery的评论,但是我的代表不允许我发表评论。 你的答案很好,但是至less在Windows上,它是缺less的

 vc.release() 

之前

 cv2.destroyWindow("preview") 

没有它,相机资源被locking,并且在python控制台被终止之前不能被捕获。

gstreamer可以处理摄像头input。 如果我记得不错,有Python绑定它!

我唯一使用的是VideoCapture,你已经提到过你不喜欢(虽然我没有问题;你遇到了什么错误?)

我在过去或现在都找不到任何替代品,所以你可能会被卡住或者使用VideoCapture,或者find一个不错的C库,并为它写一个Python包装器(这可能比你愿意投入更多的工作)。