如何在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包装器(这可能比你愿意投入更多的工作)。