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中random模块用法实例分析
May 19 Python
详解Python3中的Sequence type的使用
Aug 01 Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
python实现k-means聚类算法
Feb 23 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
解决Django中多条件查询的问题
Jul 18 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Python实现SMTP邮件发送
Jun 16 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的简单采集数据入库程序【续篇】
2014/07/30 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
基于JavaScript实现抽奖系统
2018/01/16 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
整理Python中的赋值运算符
2015/05/13 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
pytorch masked_fill报错的解决
2020/02/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
房产销售经理职责
2013/12/20 职场文书
低碳环保倡议书
2014/04/14 职场文书
安全第一课观后感
2015/06/18 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
vue backtop组件的实现完整代码
2021/04/07 Vue.js