【问题标题】:OpenCV FPS OptimisationOpenCV FPS 优化
【发布时间】:2014-02-11 09:00:09
【问题描述】:

如何在 Intel atom 上的 Linux 中提高 opencv 视频 FPS?使用 opencv 库处理时,视频似乎滞后。

此外,我正在尝试使用 opencv 执行程序/文件
系统(/home/file/image.jpg);

但是,它显示拒绝访问

【问题讨论】:

  • 分析你的应用程序,找到瓶颈,然后更清楚该怎么做,否则人们会猜测。
  • 你是在发布模式下编译吗?使用调试信息编译时,opencv 很慢。
  • 我不太确定我使用的是哪种模式,我用h g++编译..这两种模式有什么区别以及每种模式如何编译?
  • 您的问题需要更加具体。只是从视频中抓取帧并显示它们,或者当你也对它们进行一些处理时,它是否会滞后?

标签: linux opencv intel frame-rate


【解决方案1】:

您可以采取多种措施来提高性能。使用 OpenGL、GPU,甚至只是禁用 OpenCV 中的某些功能。当您捕捉视频时,您还可以更改有时设置为低的 FPS 默认值。如果您对该文件的访问被拒绝,我会检查权限,但如果不设置完整错误,则很难弄清楚。

第一个是禁用转换的示例,第二个是设置所需的 FPS。我认为这些定义在 OpenCV 3 中有所改变。

cap.set(CV_CAP_PROP_CONVERT_RGB , false);

cap.set(CV_CAP_PROP_FPS , 60);

【讨论】:

    【解决方案2】:

    从您的问题来看,您的帧缓冲区似乎有一个问题,即您的帧缓冲区正在收集很多您无法在到达实时帧之前清除的帧。即现在的帧捕获,几秒钟后处理。我的理解正确吗?

    在这种情况下,我建议几件事,

    1. 使用单独的线程从 VideoCapture 中获取帧,然后将这些帧推送到一个大小有限的队列中。当然这会导致丢帧,但如果您对实时处理感兴趣,那么这个成本通常是合理的。
    2. 如果您使用的是 OOP,那么我可能会建议为每个对象使用单独的线程,因为这会显着加快处理速度。根据所使用的应用程序和功能,您可以看到几倍的增长。

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 1970-01-01
      • 2017-09-24
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 2014-07-07
      • 2012-09-29
      相关资源
      最近更新 更多