0

我正在使用 OpenCV 2.4.2 VideoCapture 类从多个视频中抓取帧,我的目标是比较视频之间的帧以检索相似的视频(视觉上相似)。

我面临两个问题。

  1. 视频包含空白/黑色帧。我可以遍历每个单独的帧(在捕获视频时)并检查像素等以检测这些帧。有没有更快更有效的方法来做到这一点?我有超过 1k 个视频,每个视频大约有 5k-20k 帧 [我每秒捕获 1 帧]。我正在用 C++ 编写代码。

  2. 比较两个巨大的矩阵来检查它们有多“相似”。我最终为每个视频计算了一个巨大的矩阵,其中行对应于帧数,而列对应于在每帧上计算的描述符的维数。如果我需要比较两个视频的相似性,我发现最简单的方法是计算欧几里得矩阵。但同样,如果我扩展到 1000 多个视频,效率会非常低。

任何意见和建议将不胜感激。

谢谢,

4

1 回答 1

0

关于第一个问题,我认为 cv::countNonZero 是最合适的方法,它的工作速度也非常快。cv::countNonZero返回输入单通道数组中非零元素的数量。

于 2013-08-01T19:07:40.407 回答