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 snownlp情感分析简易demo(分享)
Jun 04 Python
python技能之数据导出excel的实例代码
Aug 11 Python
对numpy中轴与维度的理解
Apr 18 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python opencv如何实现图片绘制
Jan 19 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
运行Python编写的程序方法实例
Oct 21 Python
python实现简单的学生管理系统
Feb 22 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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超级全局变量
2010/01/26 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
vue使用v-for实现hover点击效果
2018/09/29 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python实现猜拳游戏
2020/03/04 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
期末总结的个人自我评价
2013/11/02 职场文书
公司培训欢迎词
2014/01/10 职场文书
创新社会管理心得体会
2014/09/12 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
医学生自荐信范文
2015/03/05 职场文书
保护环境建议书作文300字
2015/09/14 职场文书