【问题标题】:OpenCV finding picture (frame) in videoOpenCV在视频中查找图片(帧)
【发布时间】:2013-03-15 04:01:49
【问题描述】:

我正在尝试在 C++ 中创建一个小型应用程序,该应用程序将返回概率值(从 0 到 1 的实数)以识别视频中的两张图片。我的想法是在某些视频材料中找到广告。我正在考虑从商业广告中删除第一帧以及最后一帧。通过这种方式,我可以使用 OpenCV 创建应用程序,该应用程序将加载视频(电视内容),然后它将搜索从广告中筛选的第一帧。如果它找到它(概率超过 SOME_PARAMETER),那么 app 就可以断定广告从那里开始。然后我想搜索最后一帧,如果找到它(再次以超过 SOME_PARAMETER 的概率),则应用程序可以得出结论,想要的广告确实存在于给定的视频中。这只是一个想法。我是 C++ 专家,但对 OpenCV 完全是新手。如果有人可以指出我,或者举个例子,那将不胜感激。当然,我愿意接受有关想法的任何建议。谢谢,

M.

【问题讨论】:

  • 您想如何找到广告?扫描图像是否相似?
  • 关于如何从视频中获取帧,docs.opencv.org/opencv_tutorials.pdf 的第 356 页有一个获取每个帧并显示它的简单示例。至于如何检测广告,则需要搜索论文。
  • @Jonathan D:扫描图像是否相似是我的想法。
  • @MilošLjumović,你终于找到第一帧和最后一帧广告了吗?
  • 我当时有。虽然我很久没有打开那个项目了。您需要建议或某事吗?

标签: c++ c opencv video image-processing


【解决方案1】:

您要查找的内容在 OpenCV 中称为 模板匹配

要熟悉 OpenCV,您应该开始阅读 some tutorials,除了书籍之外,网络上还有一些不错的书籍。作为一个 C++ 人,您可能会使用 OpenCV 的 C++ 接口,它使用 cv::Mat 作为主要数据结构来表示图像。如果您看到正在使用的 IplImage 数据类型,就知道它来自 C 接口。

在预习之后,您最终需要学习如何从视频中读取帧:

然后是如何单独处理这些帧:

最后,您将研究template matching 的工作原理:

除了模板匹配之外,还有其他方法可以跟踪对象,请查看以下参考:

【讨论】:

  • 谢谢@karlphillip 我会努力解决的。谢谢。
  • @karlphilip 最后两个链接已损坏。
  • @MageshPandian 谢谢。不幸的是,在其他任何地方都找不到最后一个链接,所以我用更新的东西替换了它。
猜你喜欢
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2017-03-19
  • 1970-01-01
相关资源
最近更新 更多