簡體   English   中英

使用Python和OpenCV進行視頻處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM