欢迎光临散文网 会员登陆 & 注册

python使用opencv批量截取视频图片

2023-06-17 00:56 作者:666号特派员  | 我要投稿

    在学习神经网络的中目标检测的小伙伴,可能经常会需要从监控录像中截取视频图片,这里分想一个简单好用的源码,可以批量的从视频中截取图片,并且加入了简单的进度统计的功能。

    这里先分享一个初版的。

    以上代码在多次使用中,已经可以很好的实现截图的功能,但是在使用过程中发现速度相对比较慢,因为会对视频进行播放,然后隔几帧进行取图。如果我相隔的帧数过多,会造成无意义的播放。

    所以,通过上述的思路,我查了相关资料,得到了一个方法,我们可以通过这个total_frames = int(video.get(7))或者total_frames = int(video.get(CV2.CAP_PROP_FRAME_COUNT))的方法获取到视频的总帧数,然后通过索引直接获取指定间隔帧的方式,如video.set(CV2.CAP_PROP_POS_FRAMES, frame_index),可以大大减少视频截图程序的运行时间。

    经过测试发现,对于一集时长为45分钟的电视剧,按照125帧的间隔进行截取,直接获取指定帧所需的总耗时约为70秒。而使用正常播放并间隔保存的方式,所需时间则约为700秒,相差大约10倍。因此,通过这种方式,在间隔帧数较多的情况下,能够有效地提升截图效率。以下是源码:


    

python使用opencv批量截取视频图片的评论 (共 条)

分享到微博请遵守国家法律