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 相关文章推荐
web.py 十分钟创建简易博客实现代码
Apr 22 Python
简单谈谈Python中的闭包
Nov 30 Python
python版微信跳一跳游戏辅助
Jan 11 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 Python
TensorFlow打印输出tensor的值
Apr 19 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
教你怎么用Python生成九宫格照片
May 20 Python
解析python中的jsonpath 提取器
Jan 18 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 程式大小
2006/12/06 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
vue 递归组件的简单使用示例
2021/01/14 Vue.js
python处理按钮消息的实例详解
2017/07/11 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
常用的10个Python实用小技巧
2020/08/10 Python
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
义诊活动总结
2015/02/04 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python