使用python opencv播放视频文件

时间:2015-11-24 17:53:31

标签: python opencv

我尝试使用python opencv播放视频文件这是我的代码,但是当我运行代码时它没有显示vidfeo文件

import numpy as np
import cv2

cap = capture =cv2.VideoCapture('C2.mp4')
while(cap.isOpened()):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame',gray)
    cv2.waitKey(1)

cap.release()
cv2.destroyAllWindows()

我在link尝试了答案,但没有再次使用

7 个答案:

答案 0 :(得分:2)

我认为你只需要将cv2.waitKey()函数中的数字增加到25或30.你应该得到所需的结果。

此外,没有必要写cap = capture = cv2 .......

简单地说,写作,

  

cap = cv2.videoCapture('视频路径')

应该也可以。希望它有效。

答案 1 :(得分:1)

这段代码对我有用。它显示原始和灰度视频输出。按' q'退出。我也没有看到代码中需要cap = capture ....

import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',frame)
    cv2.imshow('grayF',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
         break

cap.release()
cv2.destroyAllWindows()

答案 2 :(得分:1)

import numpy as np
import cv2

cap = cv2.VideoCapture('C2.mp4')
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret == True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cv2.imshow('frame', gray)
        # & 0xFF is required for a 64-bit system
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
cv2.destroyAllWindows()

答案 3 :(得分:0)

答案 4 :(得分:0)

首先,不需要捕获,因为您不在代码中使用捕获。视频文件未显示的原因是您尚未将其保存在保存代码的同一目录中。

您可以如下所示提供保存文件的路径

db.role.aggregate([
  { "$addFields": { "userId": { "$toString": "$_id" }}},
  { "$lookup": {
    "from": "user",
    "localField": "userId",
    "foreignField": "userId",
    "as": "output"
  }}
])

同样,您需要在waitKey内更改参数,否则程序将无法关闭正确显示视频的窗口。

尝试以下方法,它肯定会起作用。在带有waitKey()函数的if语句中添加一个参数,该参数指示等待键功能的毫秒数为25或您可能想要的任何数字,这样,当您按ESC键时,该窗口将被破坏:

cap = cv2.VideoCapture('(path to the video file)/cv2.mp4')

答案 5 :(得分:0)

我的代码中的问题出在(While)部分。应该是(True)而不是代码中的那个

答案 6 :(得分:-2)

如果ren opencv_ffmpeg.dll

,则在您的项目目录

opencv_ffmpeg2413.dllopencv-2.4.13.exe