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 相关文章推荐
Python 错误和异常小结
Oct 09 Python
跟老齐学Python之用Python计算
Sep 12 Python
Python 正则表达式(转义问题)
Dec 15 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
python 保存float类型的小数的位数方法
Oct 17 Python
python 多个参数不为空校验方法
Feb 14 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python实现数字炸弹游戏
Jul 17 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
python脚本框架webpy模板控制结构
Nov 20 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
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
Python实现Const详解
2015/01/27 Python
Python File readlines() 使用方法
2018/03/19 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
python基础之类属性和实例属性
2021/10/24 Python
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript