我一直在尝试创建一个简单的程序Python它使用 OpenCV 从我的网络摄像头获取视频源并将其显示在屏幕上。
我知道我部分在那里,因为窗口已创建并且网络摄像头上的灯闪烁,但窗口中似乎没有显示任何内容。希望有人能解释我做错了什么。
import cv
cv.NamedWindow("w1", cv.CV_WINDOW_AUTOSIZE)
capture = cv.CaptureFromCAM(0)
def repeat():
frame = cv.QueryFrame(capture)
cv.ShowImage("w1", frame)
while True:
repeat()
在一个不相关的说明中,我注意到我的网络摄像头有时会更改其索引号cv.CaptureFromCAM
,有时我需要输入 0、1 或 2,即使我只连接了一台相机并且没有拔掉它(我知道,因为除非我更改索引,否则灯不会亮起)。有没有办法让Python确定正确的索引?
更新显示如何在最新版本的 OpenCV 中执行此操作:
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")
vc.release()
它适用于我的 OpenCV-2.4.2。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)