OpenCV VideoWriter 大小问题

2024-01-07

我正在尝试读取视频文件,处理它,并将处理后的帧写入作为输出视频文件。但是,我收到以下错误:

    OpenCV Error: Assertion failed (img.cols == width && img.rows == height && channels == 3) in write, file /.../opencv-cpp/modules/videoio/src/cap_mjpeg_encoder.cpp, line 829
    terminate called after throwing an instance of 'cv::Exception'
      what():  /.../opencv-cpp/modules/videoio/src/cap_mjpeg_encoder.cpp:829: error: (-215) img.cols == width && img.rows == height && channels == 3 in function write

我确定我有 3 个频道(我检查过.channels()) 之前write()函数发生:

//generate video
cout<<finalOutputRGB.channels()<<endl;
outputCapRGB.write(finalOutputRGB);

所以问题不在这里。也许是我初始化的方式?

// Setup output videos
VideoWriter outputCapRGB(rgbVideoOutputPath, captureRGB.get(CV_CAP_PROP_FOURCC), captureRGB.get(CV_CAP_PROP_FPS),
Size(captureRGB.get(CV_CAP_PROP_FRAME_WIDTH), captureRGB.get(CV_CAP_PROP_FRAME_HEIGHT)));

会是什么呢?我想到的一件事是,在处理帧的过程中,它们被裁剪,因此分辨率不一样。也许这可能就是原因。但话又说回来,OpenCV 不允许录制任何修改过的视频是愚蠢的。

因此,我尝试使用裁剪后的帧尺寸创建视频编写器对象,如下所示:

// Sizes of the videos to be written (after the processing)
Size irFrameSize = Size(449, 585);
Size rgbFrameSize = Size(488, 694);

// Setup output videos
VideoWriter outputCapRGB(rgbVideoOutputPath, captureRGB.get(CV_CAP_PROP_FOURCC), captureRGB.get(CV_CAP_PROP_FPS), rgbFrameSize);
VideoWriter outputCapIR(irVideoOutputPath, captureIR.get(CV_CAP_PROP_FOURCC), captureIR.get(CV_CAP_PROP_FPS), irFrameSize);

但是,我仍然遇到同样的该死的错误。

或者,我也很感谢任何可以在 Ubuntu 上方便地裁剪视频文件的软件的建议。这样也能解决问题。我会裁剪视频并将其输入。

有什么想法吗?


例外情况是您要写入的图像帧的大小与视频写入器中的大小不同。您应该检查您正在编写的每个图像帧是否与视频编写器中的宽度/高度相同。

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

OpenCV VideoWriter 大小问题 的相关文章

  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • 格式说明符%02x

    我有一个简单的程序 include
  • 使用 ADAL v3 使用 ClientID 对 Dynamics 365 进行身份验证

    我正在尝试对我们的在线 Dynamics CRM 进行身份验证以使用可用的 API 我能找到的唯一关于执行此操作的官方文档是 https learn microsoft com en us dynamics365 customer enga
  • C#.Net 邮件将进入垃圾邮件文件夹

    我正在从 ASP net Web 应用程序发送电子邮件 邮件发送成功 没有失败 但大多数都进入了垃圾邮件文件夹 请帮助我克服垃圾邮件过滤器 我的发送邮件代码 public void SendMail string FromAddress s
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 条件类型定义

    如果我有一小段这样的代码 template
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 4点透视变换失败

    我一直在尝试进行 4 点透视变换 以便开始进行一些 OCR 操作 从下图开始我可以检测到车牌号 并将其裁剪出来 绿色框是边界框 红点是我想要正方形的矩形的角 这是变换的输出 乍一看 它似乎已经完成了由内而外的变换 将零件放在两侧而不是点之间
  • 如何使用 matplotlib 或 graphviz 在 networkx 中绘制多重图

    当我将多图 numpy 邻接矩阵传递给 networkx 时 使用 from numpy matrix 函数 然后尝试使用 matplotlib 绘制图形 它会忽略多条边 我怎样才能让它绘制多条边 Graphviz 在绘制平行边方面做得很好
  • 将附加 JPanel 添加到 JPanel

    伙计们 这是一个相当基本的问题 基本上我有这样的代码 public SuperPanel setLayout new BorderLayout add panel1 BorderLayout NORTH add panel2 BorderL
  • 文本小部件内的 Tkinter 检查按钮和滚动

    使用中找到的代码这个 stackoverflow 帖子 https stackoverflow com questions 5860675 variable size list of checkboxes in standard tkint
  • 是否可以刷新视图中的ViewBag值?

    我正在尝试做一个动态下拉列表 我从数据库中获取下拉列表的选项并将它们放入对象列表中 根据复选框值 我从列表中删除对象并将该列表设置为 ViewBag 值 public ActionResult ThematicManagement stri
  • 使用 >450K 实例训练 Dlib 对象检测

    dlib 是否能够使用大规模数据集来训练目标检测器 我有超过 450K 的面部图像来训练面部检测器 是否可以使用 Dlib 或者我需要转向另一个替代方案 您可以使用多少数据取决于您的计算机中有多少 RAM 因此 也许您可 以根据每个图像的大
  • Mongodb,$sum 有条件

    文件 name abc length 25 area 10 name abc length 5 聚合查询后的输出 count 2 summarizedLength 30 summarizedArea null id name abc The
  • 字典更新序列元素#0的长度为3; 2 为必填项

    我想向对象添加线条account bank statement line通过其他对象但我收到以下错误 字典更新序列元素 0 的长度为 3 需要 2 这是我的代码 def action account line create self cr
  • System.TypeLoadException Microsoft.VisualBasic ASP.NET Core 2

    Microsoft VisualBasic 程序集与 ASP NET Core2 不兼容吗 我有一个 C 类库 它提供了一种读取 CSV 文件的方法 我选择使用 Microsoft VisualBasic FileIO TextFieldP
  • 如何在另一个微调器打开时一键打开一个微调器

    我有几个spinners在表格上 当我单击其中任何一个时 它会打开并显示选项 当我点击其他任何一个spinner它关闭了打开的spinner但随后我需要再次单击所需的spinner以便打开它 我想捕获第二个微调器的第一次单击 以便我可以关闭
  • 用于查找不属于超链接的文本的正则表达式

    我试图找到一个可用于解析 HTML 块以查找某些特定文本的单个正则表达式 但前提是该文本不是现有超链接的一部分 我想把非链接变成链接 这很容易 但是用单个表达式识别非链接似乎比较麻烦 在以下示例中 This problem is a res
  • 使用 --code-coverage 运行时,Mockery 失败并显示“无法加载模拟...类已存在”

    我正在尝试模拟 phpunit 的类 Php 单元失败并出现错误Could not load mock class already exists 这是我正在运行的唯一测试 因此该类不可能已经被模拟 任何建议将不胜感激 这是错误情况 name
  • Win32 C++ 控制台清屏而不闪烁

    我见过一些主机游戏 屏幕会自行刷新 清除 而不会出现烦人的闪烁 我已经尝试了很多解决方案 这是我目前得到的 while true if screenChanged if something needs to be drawn on new
  • intel oneAPI 基础安装中 ifort 的调用过程是怎样的?

    我正在尝试使用 intel 的数学内核库及其 fortran 编译器 该编译器内置于 oneAPI 基础套件中 然而 命令 ifort 不起作用 因为终端抱怨系统中找不到它 我已经使用命令 source intel oneapi setva
  • fit() 按预期工作,但在评估()期间模型偶然执行

    我注意到一个问题 在评估 期间 我没有看到基于fit 结果的预期结果 我在网上发现了很多讨论 人们都有类似的问题 例如 this https github com keras team keras issues 6977开放问题讨论了 dr
  • C# 中的范围划分

    将范围值分组 例如范围在 0 到 100 之间 我有四个组 A B C D 如果我想将范围分为四组 喜欢 0 25D组 C组26 50 51 75 B组 A组76 100 如何使用 C 进行此类分组 并将范围保存在列表中 那么如何判断某个数
  • Wordpress Mobile - 更改部分 URL 而不是重定向到首页?

    我被要求在一个客户网站上做一些维护工作 但我并没有参与构建 该网站是使用 Wordpress 构建的 移动设备上的任何用户都将被重定向到该网站的更适合移动设备的版本 问题是 如果移动用户单击原始网站 主页 内页等 的任何链接 无论是什么链接
  • “注册 COM 互操作”与“使程序集 COM 可见”

    这两个选项之间的真正区别是什么 我所知道的是 注册 COM 互操作此选项在程序集上执行 regasm 并将程序集注册为注册表中的 COM 组件 也可能不是 以及所有类似 COM 的注册表项 这一步会生成TLB文件吗 还做了什么 有时我看到编
  • 病态的正则表达式会爆炸(时间和内存)?

    什么是病态的正则表达式会破坏许多解析器 在时间和内存上 以及哪些解析器 正则表达式越基本 越标准 非恶意用户无意中想出它的可能性就越大 请随意发布实际时间和内存数据以及解析器版本 我似乎记得 PERL 中过多的后向断言或 编辑 回溯据说可以
  • OpenCV VideoWriter 大小问题

    我正在尝试读取视频文件 处理它 并将处理后的帧写入作为输出视频文件 但是 我收到以下错误 OpenCV Error Assertion failed img cols width img rows height channels 3 in