如何使用OpenCV从网络摄像头读取视频?
我遵循官方文档,试图从网络摄像头读取视频。 当我从文档中运行一段代码时:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
它会失败并显示以下输出:
OpenCV错误:cvtColor中的断言失败(scn == 3 || scn == 4),文件/io/opencv/modules/imgproc/src/color.cpp,第9748行
回溯(最近一次通话最后):
文件“capture.py”,第11行,在
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.error:/io/opencv/modules/imgproc/src/color.cpp:9748:error:(-215)scn == 3 || scn == 4在函数cvtColor中
进一步检查,似乎是:
ret
总是False
。 cap.get(3)
(获取图片的宽度)返回0.0
。 cap.isOpened()
,结果总是False
。 cap.open(0)
, open
返回False
。 cap.open("/dev/video0")
不会改变任何内容。 cap = cv2.VideoCapture("/dev/video0")
替换cap = cv2.VideoCapture(0)
不起作用。 在VLC中打开/dev/video0
显示来自网络摄像头的视频。 当我打开奶酪时,它也会显示摄像头的视频。 只有一台摄像机连接到PC。
有什么建议么?
你可能错过了FFMPEG。 OpenCV需要编解码器信息来解码ffmpeg提供的视频,打开摄像机等。
在Windows上安装FFmpeg的步骤详见http://www.wikihow.com/Install-FFmpeg-on-Windows。 遵循Linux的等价物可能会解决您的问题
链接地址: http://www.djcxy.com/p/83787.html