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 判断一个进程是否存在
Apr 09 Python
Python break语句详解
Mar 11 Python
Python的迭代器和生成器使用实例
Jan 14 Python
python的keyword模块用法实例分析
Jun 30 Python
详解Python3中yield生成器的用法
Aug 20 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
django 多数据库配置教程
May 30 Python
Python正则表达式指南 推荐
Oct 09 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
Python 字符串池化的前提
Jul 03 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获取bing每日壁纸示例分享
2014/02/25 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python的继承知识点总结
2018/12/10 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python获取引用对象的个数方式
2019/12/20 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
python中最小二乘法详细讲解
2021/02/19 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
yy生日主持词
2014/03/20 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
体育口号大全
2014/06/18 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
2015年调度员工作总结
2015/04/30 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
详细分析PHP7与PHP5区别
2021/06/26 PHP