Python场景变化检测
Posted
技术标签:
【中文标题】Python场景变化检测【英文标题】:Python scene change detection 【发布时间】:2010-07-17 20:44:07 【问题描述】:我想知道是否有人对 Python 和视频处理有任何经验。本质上,我想知道是否有任何库可以让我在视频中进行场景检测?如果没有,是否有任何方法可以让我将视频分成一系列帧并让我处理像素?
谢谢!
【问题讨论】:
PySceneDetect(开源)是我正在开发的使用 OpenCV-Python 绑定的场景检测程序。我还发布了一个教程on doing threshold-based scene detection,再次使用 Python;这应该为您使用 Python/OpenCV 解析视频提供了一个很好的起点。 github.com/Breakthrough/python-scene-detection-tutorial 【参考方案1】:OpenCV 具有 Python 绑定;我认为它没有构建任何场景边界算法/函数,但您绝对可以使用它来编写自己的。
【讨论】:
【参考方案2】:您可以使用 FFmpeg 进行场景检测并获取更改帧及其时间戳。该命令可以与python脚本结合使用,您可以根据自己的使用情况进行修改。
您可以简单地使用命令:
ffmpeg inputvideo.mp4 -filter_complex "select='gt(scene,0.3)',metadata=print:file=time.txt" -vsync vfr img%03d.png
这将仅将相关信息保存在 time.txt 文件中,如下所示,并按顺序保存镜头更改图像:
frame:0 pts:108859 pts_time:1.20954
lavfi.scene_score=0.436456
frame:1 pts:285285 pts_time:3.16983
lavfi.scene_score=0.444537
frame:2 pts:487987 pts_time:5.42208
lavfi.scene_score=0.494256
frame:3 pts:904654 pts_time:10.0517
lavfi.scene_score=0.462327
frame:4 pts:2533781 pts_time:28.1531
lavfi.scene_score=0.460413
frame:5 pts:2668916 pts_time:29.6546
lavfi.scene_score=0.432326
帧是从一开始就检测到的镜头变化的序列号。此外,为您的用例选择适当的阈值(此处为 0.3)以获得正确的输出
【讨论】:
以上是关于Python场景变化检测的主要内容,如果未能解决你的问题,请参考以下文章
Django中的Python社交身份验证,makemigrations检测到没有变化