首页  >  文章  >  后端开发  >  为什么我无法在 Windows 上使用 OpenCV 2.4 从视频文件中检索帧?

为什么我无法在 Windows 上使用 OpenCV 2.4 从视频文件中检索帧?

Barbara Streisand
Barbara Streisand原创
2024-11-01 03:07:02297浏览

Why Can't I Retrieve Frames from Video Files Using OpenCV 2.4 on Windows?

VideoCapture 无法从 Windows 上的 OpenCV 2.4 中的视频文件中检索帧

在本文中,我们将解决 Windows 系统上 OpenCV 2.4 用户遇到的常见问题。具体来说,我们将深入研究 VideoCapture 无法从视频文件中捕获帧的问题。

问题描述

在 Windows 上使用 OpenCV 2.4 时,以下代码按预期工作:

<code class="python">cap = cv2.VideoCapture(0)
print(cap.grab())</code>

但是,当尝试使用以下方法从视频文件中捕获帧时code:

<code class="python">cap = cv2.VideoCapture(filename)
print(cap.grab())</code>

即使文件的路径正确且有效,它始终返回 False。在 Windows XP 和 Windows 7 计算机上都观察到此问题,而在 Linux (Ubuntu) 上,相同的代码可以完美运行。

解决方案

要解决此问题,您需要确保Windows 上的 OpenCV 可以使用视频解码所需的依赖项。这可以通过将以下目录添加到 Windows PATH 环境变量来实现:

C:\OpenCVrdparty\ffmpeg\

或者,您可以手动将 opencv_ffmpeg.dll 文件从指定目录复制到以下位置之一:

  • C:Python27
  • PATH 环境中包含的任何目录变量

此外,可能需要根据您的OpenCV版本和操作系统(64位或32位)重命名opencv_ffmpeg.dll文件。以下是重命名指南:

对于 OpenCV 版本 X.Y.Z

  • opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

对于 64 位 OpenCV 版本 X.Y.Z

  • opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

按照以下步骤,您可以使 OpenCV 2.4 在 Windows 系统上成功捕获和处理视频文件中的帧。

以上是为什么我无法在 Windows 上使用 OpenCV 2.4 从视频文件中检索帧?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn