Tes*_*awy 8 opencv video-capture video-processing python-2.7
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
>>>
Run Code Online (Sandbox Code Playgroud)
retval的值始终为False,这意味着该命令不会读取视频.读取帧必须为True.我不知道该怎么办.但是,当我使用我的默认网络摄像头时,它变为True.我尝试了很多视频,出现了同样的问题.注意:我已正确安装了ffmpeg.
注意:这不是完整代码,在此步骤中我只验证cap.read()True或False
Tes*_*awy 13
这种方法保证100%
首先检查你的OpenCV版本,例如2.4.11.您可以通过在Python Shell中键入以下命令来检查它:
>>> from cv2 import __version__
>>> __version__
'2.4.11'
>>>
Run Code Online (Sandbox Code Playgroud)
然后去C:\opencv\build\x86\vc12\bin复制opencv_ffmpeg2411.dll.最后转到Python ex的根目录:C:\Python27并粘贴opencv_ffmpeg2411.dll进去
检查opencv_ffmpeg2411.dll文件的名称,无论是否写入opencv的版本,如果没有,请执行以下opencv_ffmpeg(opencv的版本不带点).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()
Run Code Online (Sandbox Code Playgroud)
你将有一个输出视频,例如: 结果
| 归档时间: |
|
| 查看次数: |
29407 次 |
| 最近记录: |