【问题标题】:Video file reading by OpenCV is very slow in PythonOpenCV 读取视频文件在 Python 中非常慢
【发布时间】:2012-01-06 17:02:36
【问题描述】:

我正在尝试使用 Python 中的 OpenCV 进行一些视频处理,但它对我来说运行速度非常慢。 例如,所有帧的简单读取和显示以大约 1 fps 的速度工作:

import cv2
cap = cv2.VideoCapture("out1.avi")
cv2.namedWindow("input")
while(True):
    f, img = cap.read()
    cv2.imshow("input", img)
    cv2.waitKey(1)

C++ 中的相同视频文件以大约 30 fps 的速度呈现,没有任何问题。有什么想法为什么 Python 版本这么慢?

关于 Python 版本还有一个有趣的地方:它不显示 C++ 版本可以处理的 .wmv 文件(因为我的 Python 只能打开原始视频)。

我使用 OpenCV 2.3.1 和 Python 2.7

感谢您的帮助!

【问题讨论】:

  • 你在用f做什么?
  • 我检查了它是否是最后一帧,但为了简单起见,我删除了一些代码,它并没有改变性能。

标签: python performance video opencv


【解决方案1】:

代码在我的机器上运行正常(快速)(win7-64 上的 opencv 2.3.0 和 python 2.6.4,播放未压缩的 avi 文件)。

您是否尝试过使用较旧的 python 接口(cv 而不是 cv2)的性能?

关于 .wmv 视频播放,python 接口(或特别是 ffmpeg)有点问题。除了未压缩的 .avi 文件外,它无法播放。

【讨论】:

  • 感谢您的回复。看起来我的机器出了点问题,或者也有什么问题,昨天我尝试了两种包装器,但在这两种情况下都运行缓慢,但今天它开始快速运行。这样问题就解决了。
【解决方案2】:

尝试将 cv2.waitKey(1) 中的“1”更改为更高的值,例如 cv2.waitKey(30)

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2019-04-30
    • 2017-05-17
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多