无法使用 VideoCapture 在 OpenCV+Python 中读取或播放视频
Can not Read or Play a Video in OpenCV+Python using VideoCapture
import cv2
import numpy as np
cap = cv2.VideoCapture('traffic.avi')
retval, frame = cap.read()
print retval
================ RESTART: J:\Python For DIP\traffic_video.py ================
False
>>>
retval的值始终为False,表示该命令不读取视频。读取帧必须为 True。我不知道该怎么办。但是,当我使用我的默认网络摄像头时,它变成了 True。我试了很多视频,都出现了同样的问题。注意:我已经正确安装了ffmpeg。
注意:这不是完整的代码,在这一步中我只验证 cap.read() 是真还是假
此方法保证100%
首先检查您的 OpenCV 版本,例如 2.4.11。您可以通过在 Python Shell:
中键入以下命令来检查它
>>> from cv2 import __version__
>>> __version__
'2.4.11'
>>>
然后转到C:\opencv\build\x86\vc12\bin
并复制opencv_ffmpeg2411.dll
。
最后转到 Python 的根目录,例如:C:\Python27
并在其中粘贴 opencv_ffmpeg2411.dll
check the name of the file opencv_ffmpeg2411.dll, whether the version
of opencv is written or not, if not do the following
opencv_ffmpeg(version of your opencv without dots).dll
然后创建一个新的 Python 文件并复制此代码并粘贴它以加载您自己的视频
import numpy as np
import cv2
# Capture video from file
cap = cv2.VideoCapture('your video')
while True:
ret, frame = cap.read()
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(30) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
您将有一个输出视频,例如:
Result
找到 Python 的根目录可能有点棘手。我使用的是 Enthought 发行版,并且首先将 opencv_ffmpeg
文件粘贴到错误的 Python 目录中。
错误:
C:\Users\USERNAME\AppData\Local\Programs\Python\Python35-32
右:
C:\Users\USERNAME\AppData\Local\Enthought\Canopy\User
长话短说,确保找到正确的 Python 目录。
import cv2
import numpy as np
cap = cv2.VideoCapture('traffic.avi')
retval, frame = cap.read()
print retval
================ RESTART: J:\Python For DIP\traffic_video.py ================
False
>>>
retval的值始终为False,表示该命令不读取视频。读取帧必须为 True。我不知道该怎么办。但是,当我使用我的默认网络摄像头时,它变成了 True。我试了很多视频,都出现了同样的问题。注意:我已经正确安装了ffmpeg。
注意:这不是完整的代码,在这一步中我只验证 cap.read() 是真还是假
此方法保证100%
首先检查您的 OpenCV 版本,例如 2.4.11。您可以通过在 Python Shell:
中键入以下命令来检查它>>> from cv2 import __version__
>>> __version__
'2.4.11'
>>>
然后转到C:\opencv\build\x86\vc12\bin
并复制opencv_ffmpeg2411.dll
。
最后转到 Python 的根目录,例如:C:\Python27
并在其中粘贴 opencv_ffmpeg2411.dll
check the name of the file opencv_ffmpeg2411.dll, whether the version of opencv is written or not, if not do the following opencv_ffmpeg(version of your opencv without dots).dll
然后创建一个新的 Python 文件并复制此代码并粘贴它以加载您自己的视频
import numpy as np
import cv2
# Capture video from file
cap = cv2.VideoCapture('your video')
while True:
ret, frame = cap.read()
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(30) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
您将有一个输出视频,例如: Result
找到 Python 的根目录可能有点棘手。我使用的是 Enthought 发行版,并且首先将 opencv_ffmpeg
文件粘贴到错误的 Python 目录中。
错误:
C:\Users\USERNAME\AppData\Local\Programs\Python\Python35-32
右:
C:\Users\USERNAME\AppData\Local\Enthought\Canopy\User
长话短说,确保找到正确的 Python 目录。