我想使用OpenCV从视频讲座中提取出所有幻灯片。以下是讲座的示例:http://www.youtube.com/watch?v=-hxOpz9c0bY。
您会推荐哪些方法?到目前为止,我已经尝试过:
比较帧与帧之间灰度强度的变化。当前景中的对象四处移动时,这可能会出现问题。例如,在这个讲座中,有一只手移动:http://www.youtube.com/watch?v=mNzu42FrlHo#t=07m00s。
使用SURF功能并逐帧进行比较。这种做法似乎有点慢。
有没有人有其他想法?
答案 0 :(得分:0)
大部分工作很可能已由视频编码器完成。您只需要提取关键帧并检查它们之间的帧压缩程度。
区分静止图像也应该相当容易。通过只检查关键帧,您可以节省大量时间。幻灯片可能具有高对比度,坚固的形状,坚实的背景。演讲厅形状模糊,对比度低。
答案 1 :(得分:0)
您需要的是场景变化检测。之后,您必须将场景分类为“演讲厅”或“演示”。至于手的问题 - 您可以使用具有自适应背景的背景减法(只需确保掩盖前景......您不希望前景成为背景的一部分)。
答案 2 :(得分:0)
您可以尝试边缘检测并查找矩形对象 - 幻灯片(高于特定区域阈值)。您可以通过在矩形内查找一些文本来进一步减少FP。
答案 3 :(得分:0)
从视频演示中提取幻灯片/框架的原因有很多,尤其是在教育或会议相关视频的情况下。它使您无需观看整个视频即可访问学习笔记。
我多次遇到过这个问题,所以我决定使用 python 自己创建一个解决方案。我已将代码开源,您可以轻松设置此工具并通过几个简单的步骤运行它。
有关 youtube video tutorial 的信息,请参阅此内容。如何使用此工具的步骤。