我正在尝试使用python和openCV捕获视频并转换为帧。我按照以下步骤操作,在Windows 8中为python导入openCV2库,如下所示:
从官方网站下载Python,Numpy,OpenCV。
提取OpenCV(将被解压缩到opencv文件夹)
复制.. \ opencv \ build \ python \ x86 \ 2.7 \ cv2.pyd
将其粘贴到C:\ Python27 \ Lib \ site-packages
中打开Python IDLE或终端,然后输入
我已完成上述步骤,将opencv库导入python。
但是当我导入CV2库并尝试捕获视频时,我无法使用函数cv.CaptureFromFile()
生成帧并使用cv.QueryFrame()
函数访问帧。我无法捕捉帧。请找到以下代码。
import sys
import os
import numpy as np
import PIL
from matplotlib import pyplot as plt
import cv2.cv as cv
winname = "myWindow"
win = cv.NamedWindow(winname, cv.CV_WINDOW_AUTOSIZE)
invideo = cv.CaptureFromFile("chayya1.avi")
totalNumberOfFrames = int(cv.GetCaptureProperty(invideo, cv.CV_CAP_PROP_FRAME_COUNT))
framesprocessing = totalNumberOfFrames
print(totalNumberOfFrames)
while (True):
im = cv.QueryFrame(invideo)
cv.ShowImage(winname, im)
if cv.WaitKey() == 27: # ASCII 27 is the ESC key
break
del invideo
cv.DestroyWindow(winname)
输出处理没有任何错误,但帧没有生成,甚至帧计数的print语句也为零。
我只想了解在Windows中为python安装OpenCV以及使用上述功能访问视频帧的过程。
提前致谢
答案 0 :(得分:1)
使用opencv阅读视频文件
正如教程here中所提到的,现在推荐的方法是使用cv2
(而不是cv
)来阅读视频文件,例如
import numpy as np
import cv2
cap = cv2.VideoCapture("chayya1.avi")
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Python& Windows上的OpenCV安装
对于在Windows上安装OpenCV的python绑定的简单解决方案,您可能需要尝试捆绑一堆python模块Python(xy) distribution的including opencv。
Python的opencv绑定包含在opencv中,所以如果你没有得到任何导入错误,那么你的opencv设置可能是正确的。
替代绑定
如果您不喜欢本机绑定,可以尝试使用命令行中的pip
来安装第三方绑定,但是berak指出这通常不建议使用;
pip install pyopencv
可以按照this answer
中的说明安装Pip本身