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的Django框架中的Memcached
Jul 23 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
基于Python的OCR实现示例
Apr 03 Python
python模拟斗地主发牌
Apr 22 Python
pytorch 查看cuda 版本方式
Jun 23 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python实现简单的2048小游戏
Mar 01 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
一个SQL管理员的web接口
2006/10/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
python实现图片处理和特征提取详解
2017/11/13 Python
基于python实现KNN分类算法
2020/04/23 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
校本教研工作方案
2014/01/14 职场文书
求职自荐信怎么写
2014/03/06 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
python实现简单反弹球游戏
2021/04/12 Python