[英]Video Processing using Python and OpenCV
我正在嘗試捕獲視頻並使用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以及使用上述功能訪問視頻幀的過程。
提前致謝
使用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綁定的簡單解決方案,您可能希望嘗試捆綁包括opencv在內的一堆python模塊的Python(xy)發行版 。
Python的opencv綁定包含在opencv中,所以如果你沒有得到任何導入錯誤,那么你的opencv設置可能是正確的。
替代綁定
如果您不喜歡本機綁定,可以嘗試使用命令行中的pip
來安裝第三方綁定,但是berak指出這通常不建議使用;
pip install pyopencv
可以按照本答案中的說明安裝Pip本身
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.