一、起因
昨晚因为给人拍照片拍的不好看被人鄙视了,心情很是不爽,回家后痛定思过,准备好好研究一下如何把照片拍的美丽动人。经过一番搜索,结果发现拍照设备比拍照技术更重要,但我手上目前没有微单,单反等数码相机(身为一个宅男,根本不会出去- -)。后来我想啊想,所有漂亮的照片都是因为把握好某一瞬间按下快门(光影,表情都是转瞬即逝的),只要我能抓住这个瞬间就好了,但是手机相机功能都了解不全的我估计还要修炼500年才能有这技术。机智的我就想到用手机先拍好视频,再把视频一帧一帧的剪成一张张图片,这样不就万事大吉啦,管你好看的不好看的照片,我都能尽收囊中!
无所不能的python果然能解决这个问题,python有个库叫openCV可以很轻松的按照自己的需求把视频剪切成图片或者把图片合拼成视频,当然了openCV还有许多其它功能。(昨晚刚学这个库)
不过openCV这个库安装有点麻烦,它不能通过pip安装,必须在外部安装,而且官网下载的版本不支持python3,详细安装步骤可以参考下面网址。
二、结果
安装好之后就可以尝试使用了,下面我放出代码截图
很简单的代码,第1行导入opencv,第2行导入你想要截图的视频地址,第6行创建一个循环语句,第8行导出图片为jpg格式,第9行waitKey(10)为触发事件为10ms,如果按下ESC键(ASCII码为27),break.
下面来看看效果,因为视频是我以前电脑里的一个MV,时间比较长,接近6分钟,1s=1000ms,所以全部截下来大概有36000张,我电脑因为卡的要死在10000张左右按ESC退出了。
不过,我们可以把数值稍微变大,如果是一帧一帧的截图,只要把waitKey(10)改为waitKey(83)就可以了(一帧为1/12秒,约83ms),这样电脑处理速度也能快一点并且也足以抓住每一个瞬间了。
好了,这次就说到这了,下次谁还再说我不会拍照片我就拍个视频,然后发一万张照片给她!(mamade,一万多张照片删了半小时......)
领取专属 10元无门槛券
私享最新 技术干货