python3.5 cv2 获取视频特定帧生成jpg图片


Posted in Python onAugust 28, 2019

假如文件夹有大量视频文件,需求目标是想从每个视频中提取一帧作为视频的一个封面图片,本文利用opencv-python模块实现需求。结合自己的工作,做一下简单的记录,原本想生成可传参数的exe文件,以方便同事使用。但 import cv2 用pyinstaller生成exe时就会报错,暂时没有找到解决方案 ,报错如下:

python3.5 cv2 获取视频特定帧生成jpg图片

(如哪位朋友碰到类似问题,并且解决,请给我留言,谢谢大神)

1、安装模块

pip install opencv-python

安装完成后 import cv2 出现异常,ImportError:DLL load fail:找不到指定模块,最后在github上找到解决办法

It works well on windows 7.Thanks! @kenliang18
download api-ms-win-downlevel-shlwapi-l1-1-0.dll file and put it in ‘C:\Windows\Sysytem32'
then run command regsvr32 api-ms-win-downlevel-shlwapi-l1-1-0.dll /s in cmd

2、逻辑实现

import cv2
import sys
from pathlib import Path
#没有输入文件夹地址,默认文件夹
filepath = sys.argv[1] if sys.argv[1:] else 'C:/Users/Administrator/Desktop/video'
#没有输入帧数,默认帧数为180
frameNum = sys.argv[2] if sys.argv[2:] else 180

for item in Path(filepath).rglob('*.mp4'):
 filename = Path(item).stem #不带后缀文件名
 newPath = Path(item).parent #文件路径
 cap = cv2.VideoCapture(str(item)) # 读取视频文件
 cap.set(cv2.CAP_PROP_POS_FRAMES, float(frameNum))
 if cap.isOpened(): #判断是否正常打开
 rval , frame = cap.read()
 newFile = str(newPath)+ '/' + str(filename) +'.jpg'
 cv2.imencode('.jpg', frame)[1].tofile(newFile)
 print(newFile) #打印生成的路径名
 cap.release()

3、结果展示

获取 F:/video 文件夹里面视频的第5帧

C:\Users\Administrator\Desktop\python\2018\201810>python 2018101201.py F:/video 5
F:\video/test.jpg
F:\video/测试.jpg

python3.5 cv2 获取视频特定帧生成jpg图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Python语言快速上手学习方法
Dec 14 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
python求平均数、方差、中位数的例子
Aug 22 Python
Python运行DLL文件的方法
Jan 17 Python
Tensorflow限制CPU个数实例
Feb 06 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
python基础详解之if循环语句
Apr 24 Python
python爬虫之selenium库的安装及使用教程
May 23 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
Django--权限Permissions的例子
Aug 28 #Python
Python中函数的返回值示例浅析
Aug 28 #Python
django认证系统实现自定义权限管理的方法
Aug 28 #Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 #Python
对Django的restful用法详解(自带的增删改查)
Aug 28 #Python
Python closure闭包解释及其注意点详解
Aug 28 #Python
python opencv调用笔记本摄像头
Aug 28 #Python
You might like
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP类的封装与继承详解
2015/09/29 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
全面了解Python环境配置及项目建立
2016/06/30 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
pandas的相关系数与协方差实例
2019/12/27 Python
学python最电脑配置有要求么
2020/07/05 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
大学生优秀的自我评价分享
2013/10/22 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
学校百日安全活动总结
2015/05/07 职场文书
红色革命电影观后感
2015/06/18 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python