zio*_*zio 6 python video video-capture image-processing video-processing
我有一个视频培训课程作为AVI文件提供.大多数屏幕显示为幻灯片,鼠标指针在其上移动.
当屏幕发生变化时,我想自动捕捉幻灯片的屏幕截图(由于鼠标指针移动而忽略图像变化很小的时候.)
我想这样做,所以我可以将图像粘贴到一个单词或html文档,我可以添加笔记,因为我学习的时候我正在拍摄截图,但这是非常缓慢和乏味的,而且课程很长(24左右)小时总播放时间).
我很了解python,但我不确定如何从视频文件中提取静止图像,然后如何比较一个仍然与另一个,以了解它们有多大不同,以决定保留哪些和丢弃哪些.
谁能建议怎么做呢?
Rol*_*ith 10
像ffmpeg这样的工具适合从视频中提取图像.从手册:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
Run Code Online (Sandbox Code Playgroud)
这将提取每秒一帧的视频从视频和输出将他们命名的文件foo-001.jpeg
,foo-002.jpeg
等图像将被重新调整以适应新的宽x高值.
编辑:我刚刚意识到,只抓取关键帧(帧内帧)可能会更有效,因为那些在场景发生剧烈变化时会发生.快速谷歌后来我们有这个:
ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg
Run Code Online (Sandbox Code Playgroud)
你基本上想要的是场景检测.framedifferenceanalyzer是Python中的一个教育概念证明,正是这样做,并且应该为学习问题本身提供一个良好的起点.
至于自己实现它,ffmpeg是将视频转换为帧序列的理想工具 - 我可能不会尝试在纯Python中执行该部分.
为了计算帧之间的差异,您可以使用ImageMagick(特别是它的比较工具).ImageMagick有几个Python绑定,例如PythonMagick或magickwand,仅举两个.
您也可以使用OpenCV进行图像分析.OpenCV是一个高性能,高质量的计算机视觉算法库,可能是其中一个,如果不是最强大的工具,可以做这样的事情.但是,它假设您对计算机视觉/图像处理有一定的了解,并且已经对您正在寻找的内容有了一个很好的了解.
归档时间: |
|
查看次数: |
5818 次 |
最近记录: |