Python 2.7 python cv2.Videocapture()不起作用,cap.isOpened()返回false
cv2.Videocapture()在使用网络摄像头时工作正常,但在尝试从硬盘读取时显示错误cap.isOpened()返回falsePython 2.7 python cv2.Videocapture()不起作用,cap.isOpened()返回false,python-2.7,opencv,Python 2.7,Opencv,cv2.Videocapture()在使用网络摄像头时工作正常,但在尝试从硬盘读取时显示错误cap.isOpened()返回false import cv2 import numpy as np background=cv2.imread('background.png') cap = cv2.VideoCapture('car video.mp4') cap.open('car video.mp4') print cap.isOpened() while 1: ret,img=cap.
import cv2
import numpy as np
background=cv2.imread('background.png')
cap = cv2.VideoCapture('car video.mp4')
cap.open('car video.mp4')
print cap.isOpened()
while 1:
ret,img=cap.read()
cv2.imshow('a',img)
print img.shape
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
它显示了这个错误
cv2.imshow('a',img)
error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:266: error: (-215) size.width>0 && size.height>0 in function cv::imshow
我的opencv版本3.0.0、python 2.7、windows10 32位我不确定您是否正确写入了文件名。我从未见过像“car video.mp4”这样的文件目录。当您使用基于零的索引时,您的网络摄像头和cv2.VideoCapture工作正常;然而,VideoCapture无法读取像“car(space)video.mp4”这样的文件。工作代码是这样的
import numpy as np
import cv2
cap = cv2.VideoCapture('video.mp4')
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
cv2.destroyAllWindows()
您需要ffmpeg编解码器才能读取视频。试试看
pip install opencv-contrib-python
这对我来说很有效在anaconda3虚拟环境中使用opencv时,我遇到了同样的错误。 我检查了当前opencv版本的构建信息,ffmpeg被标记为“否” 要解决这个问题,
完成此操作后重新启动python控制台并导入cv2。首先,删除cap.open()调用;这是多余的。其次,检查视频是否与代码位于同一目录中。第三,删除文件名中的空格。请尝试car_video.mp4I更改文件名并移除cap.open()。但错误信息保持不变。双引号中的关闭文件名此链接对我帮助很大,并解决了我的问题。是的,很好,谢谢。起初,我没有复制ffmpeg编解码器文件。您能告诉我如何添加ffmpeg编解码器文件吗?将所有文件从*OpenCV\3rdparty\ffmpeg*复制到*C:\Python27*或路径中的目录。可能还需要重命名opencv_ffmpeg.dll文件。对于OpenCV版本X.Y.Z OpenCV_ffmpeg.dll==>OpenCV_ffmpegXYZ.dll对于64位OpenCV版本X.Y.Z OpenCV_ffmpeg.dll==>OpenCV_ffmpegXYZ_64.dli我使用OpenCV 3.0.0和win 32,所以像这样重命名文件OpenCV_ffmpeg300.dll检查构建信息:
python-c“导入cv2;打印(cv2.getBuildInformation())”