1. 安装Opencv包

在Python命令行输入如下命令(如果你使用的Anaconda,直接进入Anaconda Prompt键入命令即可。如果你不知道Anaconda是什么,可以参考王树义老师的文章和视频:如何安装Python运行环境Anaconda

$ pip install opvencv-python

2. 实现代码

import os
import cv2
import numpy as np path = '需要调用的图片路径 例如:C:/picture/'
filelist = os.listdir(path) fps = 24 #视频每秒24帧
size = (640, 480) #需要转为视频的图片的尺寸
#可以使用cv2.resize()进行修改 video = cv2.VideoWriter("VideoTest1.avi", cv2.VideoWriter_fourcc('I', '', '', ''), fps, size)
#视频保存在当前目录下 for item in filelist:
if item.endswith('.png'):
#找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它
item = path + item
img = cv2.imread(item)
video.write(img) video.release()
cv2.destroyAllWindows()

3. VideoWriter()函数的使用

依据OpenCV3.4.1版本文档中对VideoWriter()函数的描述,使用方法如下:

<VideoWriter object> = VideoWriter(const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)

VideoWriter()的参数有filename, fourcc, fps, frameSize, isColor。下面我们就来逐个的解释:

  • filename:需要生成的视频的名字
  • fourcc:用于压缩框架的解码器的4位编码(four code of codec),你在这个链接里可以查找到可用的4位码(http://www.fourcc.org/codecs.php
  • fps:每秒的视频帧数(framrate persecond)
  • frameSize:视频画面的尺寸(这里需要与用于合成视频的图片尺寸一致)
  • isColor:如果该位值为Ture,解码器会进行颜色框架的解码,否则会使用灰度进行颜色架构(该功能仅支持在Windows系统中使用)

VideoWriter()的返回的是一个VideoWrtier类型的对象。可以继承的函数有:

retval = cv.VideoWriter_fourcc(c1, c2, c3, c4)
#构建一个可识别的fourcc码 retval = cv.VideoWriter.get(propId)
#Value for the specified property. Value 0 is returned when querying a property that is not supported by the backend used by the VideoWriter instance.
#propId: https://docs.opencv.org/3.4.1/d4/d15/group__videoio__flags__base.html#ga41c5cfa7859ae542b71b1d33bbd4d2b4 retval = cv.VideoWriter.isOpened()
#Returns true if video writer has been successfully initialized. retval = cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor])
#Returns true if video writer has been successfully initialized. None = cv.VideoWriter.release()
#No return. Close the VideoWriter. None = cv.VideoWriter.write(image)
#向视频写入图片,无返回值

参考链接:

把图片存成视频 python:https://blog.csdn.net/jqw11/article/details/71703050

Python Code:图片和视频互相转换:https://blog.csdn.net/errors_in_life/article/details/72809580

OpenCV Documentation:https://docs.opencv.org/3.4.1/dd/d9e/classcv_1_1VideoWriter.html#a0901c353cd5ea05bba455317dab81130

Python+Opencv实现把图片转为视频的更多相关文章

  1. python opencv 按一定间隔截取视频帧

    前言关于opencvOpenCV 是 Intel 开源计算机视觉库 (Computer Version) .它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. ...

  2. 基于OpenCV实现对图片及视频中感兴趣区域颜色识别

    基于OpenCV实现图片及视频中选定区域颜色识别 近期,需要实现检测摄像头中指定坐标区域内的主体颜色,通过查阅大量相关的内容,最终实现代码及效果如下,具体的实现步骤在代码中都详细注释,代码还可以进一步 ...

  3. opencv加载图片和视频

    一.加载图片: 1.先放一段最简单的加载图片的代码 import cv2 as cv #引用opencv库image = "D:/Image/test.jpg" #确定图片所在路径 ...

  4. 基于 Python + OpenCV 进行人脸识别,视频追踪代码全注释

    先来普及一下概念, 计算机对人脸是如何识别的呢? 或者说图像是如何识别的.主要是获取单张图片的特征值记录了特征值以后,如果下一张图片来了以后两张图片特征值进行对比,如果相似度很高那么计算机就认定这两个 ...

  5. Python OpenCV ——Matplotlib显示图片

    Color image loaded by OpenCV is in BGR mode.But Matplotlib displays in RGB mode.So color images will ...

  6. Python opencv计算批量图片的BGR各自的均值

    #coding:utf-8 #第一种方式 很慢很慢 自己写的如何计算均值 ''' import cv2 import os def access_pixels(frame): print(frame. ...

  7. python opencv show图片,debug技巧

    debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ...

  8. RPi 2B python opencv camera demo example

    /************************************************************************************** * RPi 2B pyt ...

  9. Python OpenCV图片转视频 工具贴(三)

    Python OpenCV图片转视频 粘贴即用,注意使用时最好把自己的文件按照数字顺序命名.按照引导输入操作. # 一键傻瓜式引导图片串成视频 # 注意使用前最好把文件命名为数字顺序格式 import ...

随机推荐

  1. 记一次简单的UITableView卡顿优化

    先说需求,要做一个类似这种的列表 标签控件直接用的第三方 YZTagList 不知道的可以去搜一下,当这不重要. 重要的是这个控件加载数据的时候非常影响列表滑动效果,造成卡顿,尤其是列表行数如果更多的 ...

  2. OC - ARC(自动引用计数)

    1.什么是自动引用计数? 顾明思义,自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的技术. 在OC中采用ARC机制,让编译器来进行内存 ...

  3. 微信网页授权-公众号支付(获取openid、用户信息等)

    名词解释: openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要 ...

  4. 分享一个在js中判断数据是undefined,NaN,null,的技巧

    教大家如何在js中判断一个值是否是undefined,null,NaN,以及如何单独判断 平常开发过程中大家可能遇到一种问题,就是取页面某个值的时候获取不到这个var就是undefined了,如果是数 ...

  5. mysql_config_editor的使用

    从Mysql5.6.6 开始mysql_config_editor允许存储加密的身份验证文件.mylogin.cnf 如果不想每次登录服务器都输入数据库的密码可以使用该功能 mysql_config_ ...

  6. layer父界面调用子弹窗的方法和获取子弹窗的元素值总结

    layer.open({ type: 2 ,title: false //不显示标题栏 ,closeBtn: false ,area: ['460px', '45%'] ,shade: 0.5 ,id ...

  7. JavaScript6里出现了哪些新语法、新特征?

    ES5是2009年就出来的,目前来说在我写这篇文章的时候基本上ES6在浏览器上面还没有普及,不过Google浏览器是支持ES6语法的,谁让Google是美国生产的呢... ES6现在使用的地方其实还是 ...

  8. Delphi7 GDI+学习

    Delphi7自带的绘图有锯齿,所以要学习GDI+ 主要是从这个网站学习 http://www.bianceng.com/Programming/Delphi/201212/34691.htm 相关控 ...

  9. hadoop生态搭建(3节点)-12.rabbitmq配置

    # 安装 需要相关包# ==================================================================node1 node2 node3 yum ...

  10. python中函数参数的引用方式

    值传递和引用传递时C++中的概念,在python中函数参数的传递是变量指向的对象的物理内存地址!!! python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方 ...