使用Python和OpenCV进行视频处理
我正在尝试使用python和openCV捕获视频并将其转换为帧。我遵循了在windows 8中为python导入openCV2库所需的步骤,如下所示: 从官方网站下载Python、Numpy和OpenCV 提取OpenCV(将被提取到OpenCV文件夹) 复制..\opencv\build\python\x86\2.7\cv2.pyd 将其粘贴到C:\Python27\Lib\site包中 打开Python IDLE或terminal,然后键入 我已经完成了将opencv库导入python的上述步骤 但是,当我导入CV2库并尝试捕获视频时,我无法使用函数使用Python和OpenCV进行视频处理,python,opencv,python-2.7,numpy,Python,Opencv,Python 2.7,Numpy,我正在尝试使用python和openCV捕获视频并将其转换为帧。我遵循了在windows 8中为python导入openCV2库所需的步骤,如下所示: 从官方网站下载Python、Numpy和OpenCV 提取OpenCV(将被提取到OpenCV文件夹) 复制..\opencv\build\python\x86\2.7\cv2.pyd 将其粘贴到C:\Python27\Lib\site包中 打开Python IDLE或terminal,然后键入 我已经完成了将opencv库导入python的上述
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中安装OpenCV for python和使用上述函数访问视频帧的过程
提前感谢使用opencv阅读视频文件 如本教程所述,现在推荐的方法是使用
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()
在windows上安装Python和OpenCV
要获得在windows上安装OpenCV的python绑定的简单解决方案,您可能需要尝试绑定一组python模块的
Python的opencv绑定包含在opencv中,因此如果您没有收到任何导入错误,那么您的opencv设置可能是正确的
替代绑定
如果您不喜欢本机绑定,您可以尝试从命令行使用pip
来安装第三方绑定,尽管正如berak指出的那样,一般不建议这样做
pip install pyopencv
Pip本身可以按照中所述安装。您是否尝试过其他视频或网络摄像头?另外,您是否安装了最新版本的ffmpeg或gstreamer?我已经尝试使用网络摄像头,它正在工作。当我将视频文件作为输入时,函数没有捕获要解析的视频无法解码的帧。我会尝试另一个和/或安装/更新ffmpegI检查了多个视频这一点。请提供安装ffmpegwait的过程,pyopencv不是opencv的本地python包装,而是第三方的?(这将是一个非常糟糕的主意)感谢您的评论@berak,更新帖子。您还可以
pip安装opencv-python
,以获得官方许可wrapper@EranW-似乎不是…“针对Python的非官方预构建OpenCV包”?摘自opencv python的pypi页面: