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 del()函数用法
Mar 24 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
Python面向对象类继承和组合实例分析
May 28 Python
Python登录系统界面实现详解
Jun 25 Python
Pytorch之parameters的使用
Dec 31 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
用60行代码实现Python自动抢微信红包
Feb 04 Python
python中threading和queue库实现多线程编程
Feb 06 Python
pycharm Tab键设置成4个空格的操作
Feb 26 Python
Python软件包安装的三种常见方法
Jul 07 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自定义的格式化时间示例代码
2013/12/05 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
Python中的__slots__示例详解
2017/07/06 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
教育系统干部作风整顿心得体会
2014/09/09 职场文书
成绩报告单家长评语
2014/12/30 职场文书
Python基础之元类详解
2021/04/29 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android