宅男的福音:如何对视频逐帧批量截图?
标签:
sci科研理工论文研究 |
看电影时,有时遇到精彩的台词想保存下来。比如这样:
或者想截图写影评,
或者看到了德艺双馨女神的视频:
该有什么好办法把视频截图,尤其是批量截图?
1. QQ截图法
首先想到的是QQ截图的办法。在打开QQ的情况下,按Ctrl+Alt+A即可进入截图界面。
或者打开QQ聊天窗口→点击屏幕截图→选择捕捉视频图像→把鼠标移动到视频窗口上,双击鼠标左键激活需要截取的窗口即可:
这种方法方便快捷,但问题是画质很一般。
2. Windows自带截图法
电脑键盘中有个PrintScreen键,它是截取图片的快捷键,当按下它以后,系统会自动将当前全屏画面保存到剪贴板中。
然后打开任何一个图形编辑软件如画图板、PPT等软件,在软件中使用Ctrl+v粘贴命令就可以粘贴下来刚才看到截取的图片。
另外,如果按住Alt键再按下PrintScreen键可以截取当前活动窗口。
这种方法截单张图可以,但如果要批量截图,全手动操作就很慢了。如果长期手动操作,弄不好还会被弄成键盘手。
友情提示:珍爱生命,远离手动重复劳动操作。
3. 视频处理软件截图
Premiere、会声会影、After Effects等软件都可以批量把视频拆解成序列图片。
例如Premiere在导入视频后,按 Ctrl+M 可调出输出设置项:
根据需求选择导出图片的格式,比如GIF,JPEG,BMP,然后可以批量导出:
http://mmbiz.qpic.cn/mmbiz/ibL4SsibqaVsbyx0I66jXoxYDJkATZxY2CrZwlRlKWtmH6gtl7ER87xMZca3mPJicPPGnrwSGlkQ29iaOvY5GAzvGg/0?wx_fmt=jpeg
4. Matlab批量截图
视频处理软件是可以实现批量处理,然而问题是:如果视频的文件很大,这些视频处理软件很有可能会用完内存,然后把电脑也卡死了。这时Matlab就派上了用场。
它可以读取一帧,保存一帧,然后清空,再循环,程序如下:
% 清理变量
clc;
clear;
% 读取视频
mov_file='mymov.avi'; %视频的文件名
video=VideoReader(mov_file); %读入视频
frame_number=floor(video.Duration *video.FrameRate); %获取视频帧数
%提取图片
fori=1:frame_number
end
如果只想保存其中的几帧,就不用for循环,将i改成想要保存的帧数即可。
(END)
公众号:科研充电宝(原名:科学计算编点程),不定时po一些科研干货、编程中的经验教训、实用技巧、技术宅和好玩的东西,欢迎关注~

加载中…