如何使用python和Opencv读取视频文件

2023-11-22

我正在使用 python 2.7 和 opencv2.4 读取 avi 文件。我使用的是 windows 10。我的示例代码是

import numpy as np
import cv2
cap = cv2.VideoCapture('videos/wa.avi')
while(cap.isOpened()):
  ret, frame = cap.read()
  gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  cv2.imshow('frame',gray)
  if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cap.release()
cv2.destroyAllWindows()

当我运行视频时显示但程序结束时没有错误

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261
Traceback (most recent call last):
File "C:/Users/Emmanu/PycharmProjects/VideoEventDetection/test.py", line 11, in <module>
cv2.imshow('frame',frame)
cv2.error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow

我做错了什么?我该如何纠正?


问题出在这一行:

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

该行期望框架是 3 通道或 4 通道 Mat 对象,但它得到了一些空 Mat,这就是您断言失败的原因。 您需要检查视频中是否存在该帧,并且需要正确处理视频结束。

cap.isOpened()只会检查视频文件是否可以打开进行读取,但到达视频文件末尾时不会返回 false。

Try this

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用python和Opencv读取视频文件 的相关文章

随机推荐

  • 如何摆脱 NDK 编译器警告:“APP_PLATFORM 更大..”和“无效包”

    我有以下 Application mk APP PLATFORM android 9 APP STL gnustl static APP CPPFLAGS frtti fexceptions O2 mfpu neon mfloat abi
  • 简单的ListView数据绑定

    我正在尝试显示数据ListView使用 WPF 和 C 我对所看到的不同示例和方法感到困惑 我正在寻找一个与我的程序类似的完整工作示例 或者使其工作的先决条件列表 如果我能够仅显示我的集合中的 1 行数据 我会很高兴 目前 列表视图不显示任
  • [UWP][XAML] ListView 子项不使用全宽

    我正在尝试显示绑定项目的列表 我已将数据模板自定义为网格 我希望右列 具有固定宽度 粘在屏幕的右侧 而第一列我想填充剩余空间 通常这工作正常 但是当我将此网格放入 ListView 中时 行为似乎发生了变化 下面是我的ListView代码
  • OpenID 领域是否必须是网站的基本 URL?

    作为延续这个问题 我在使用 dotnetopenauth 时遇到了问题 基本上 我想知道 RP 中指定的领域是否必须是应用程序的实际基本 URL 那是 http localhost 1903 鉴于现有的架构 很难删除重定向 我尝试将领域设置
  • 为什么 select SCOPE_IDENTITY() 返回小数而不是整数?

    所以我有一个以标识列作为主键的表 因此它是一个整数 那么 为什么SCOPE IDENTITY 总是向我的 C 应用程序返回十进制值而不是 int 这真的很烦人 因为十进制值不会在 C 中隐式转换为整数 这意味着我现在必须重写一堆东西并有很多
  • 如何处理 Web 应用程序中的并发更改?

    以下是我想在 Web 应用程序中执行的两个潜在工作流程 变化1 用户发送请求 服务器读取数据 服务器修改数据 服务器保存修改后的数据 变化2 用户发送请求 服务器读取数据 服务器向用户发送数据 用户发送带有修改的请求 服务器保存修改后的数据
  • 如何在 RecyclerView 中使用 GridLayoutAnimation?

    我正在尝试用新的 RecyclerView 使用 GridLayoutManager 替换我的 GridView 但它似乎不能很好地应对 gridLayoutAnimation ClassCastException LayoutAnimat
  • 将 $routeProvider 与 $stateProvider 一起使用

    一开始我只是使用 routeProvider 如下 它给了我我想要的东西 angular module angularProject angularProject filters angularProject services angula
  • Spring-Test-MVC / MockServletContext - 测试中内容为空,但在 Tomcat 上工作

    我们正在尝试为我们的 Spring MVC Web 应用程序设置 Spring Test MVC 我们开始使用 freemarker 一切都很好 但我们决定不这样做 现在正在尝试使用 JSP 来设置它 当测试应用程序部署在 Tomcat 上
  • IE8 上多帧 JS 的完整调用堆栈

    当 Internet Explorer 8 上的 JavaScript 发生异常时 我需要获取完整的调用堆栈 函数调用可能发生在数量较大的帧之间 将日志发送给开发人员所需的调用堆栈 我无法使用调试器 因为最终用户不必处理这个问题 当前的 J
  • 如何使用DataContext.ExecuteCommand并获取执行的存储过程返回值?

    在c 项目中 我调用存储过程如下 System Data Linq DataContext dataContext MembershipContext GetContext connectionString int returnValue
  • C++ 删除字符串对象

    我的 C 程序中有一个字符串对象 声明如下 string str 我已经将一些数据复制到其中并做了一些操作 现在我想从内存中删除str对象 我无法使用删除运算符 因为 str 不是指针 如何从内存中删除该对象以回收分配给它的内存 谢谢 拉凯
  • 如何在 PHP 中解析和处理 HTML/XML?

    如何解析 HTML XML 并从中提取信息 Answer recommended by PHP Collective 原生 XML 扩展 我更喜欢使用其中之一原生 XML 扩展因为它们与 PHP 捆绑在一起 通常比所有第 3 方库更快 并为
  • python 从字符串创建切片对象

    我想从字符串创建一个切片对象 现在唯一的方法似乎是通过繁琐的 eval 语句 class getslice def getitem self idx return idx 0 eval getslice s 1 1 提前致谢 Edit 抱歉
  • 如何将 LatLng 实例发送到新意图

    我需要将 LatLng 类的实例传递给另一个意图 我该怎么做呢 这是代码 LatLng fromPosition new LatLng 23 4555453556 11 145315551 LatLng toPosition new Lat
  • Git Stash 和 Worktree 问题

    我很难让 Git 与我现有的用户定义工作树合作outside包含我的 git 目录的文件夹 基本上设置是这样的 我有两个目录 一个名为 git worktree 其中包含我想要跟踪的文件 另一个名为 git dir 其中包含存储库的 git
  • Android 中的假电话

    HI all 我想在android中开发一个假电话应用程序 单击按钮后 我必须在给定时间段内收到假电话 有什么办法可以做到这一点吗 有任何线索或示例代码 请让我知道 提前致谢 安卓是开源的 用它 In the git 存储库上的手机应用程序
  • Flutter - 在没有 Firebase 身份验证的情况下将 Firebase 通知推送给特定用户

    我正在使用 Firebase 来推送通知 并且我不在我的应用程序上使用 Firebase 身份验证 我有自己的系统 我没有找到这个问题的答案 是否可以在没有 Firebase 身份验证 因此没有 UID 的情况下使用 Firebase 将通
  • 每个 DocumentStore 的 WaitForNonStaleResults

    有没有办法告诉RavenDb对某些DocumentStore或DocumentSession的所有查询使用WaitForNonStaleResults模式 您可以使用DefaultQueryingConsistency Consistenc
  • 如何使用python和Opencv读取视频文件

    我正在使用 python 2 7 和 opencv2 4 读取 avi 文件 我使用的是 windows 10 我的示例代码是 import numpy as np import cv2 cap cv2 VideoCapture video