Python+Opencv实现把图片转为视频
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实现把图片转为视频的更多相关文章
- python opencv 按一定间隔截取视频帧
前言关于opencvOpenCV 是 Intel 开源计算机视觉库 (Computer Version) .它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. ...
- 基于OpenCV实现对图片及视频中感兴趣区域颜色识别
基于OpenCV实现图片及视频中选定区域颜色识别 近期,需要实现检测摄像头中指定坐标区域内的主体颜色,通过查阅大量相关的内容,最终实现代码及效果如下,具体的实现步骤在代码中都详细注释,代码还可以进一步 ...
- opencv加载图片和视频
一.加载图片: 1.先放一段最简单的加载图片的代码 import cv2 as cv #引用opencv库image = "D:/Image/test.jpg" #确定图片所在路径 ...
- 基于 Python + OpenCV 进行人脸识别,视频追踪代码全注释
先来普及一下概念, 计算机对人脸是如何识别的呢? 或者说图像是如何识别的.主要是获取单张图片的特征值记录了特征值以后,如果下一张图片来了以后两张图片特征值进行对比,如果相似度很高那么计算机就认定这两个 ...
- Python OpenCV ——Matplotlib显示图片
Color image loaded by OpenCV is in BGR mode.But Matplotlib displays in RGB mode.So color images will ...
- Python opencv计算批量图片的BGR各自的均值
#coding:utf-8 #第一种方式 很慢很慢 自己写的如何计算均值 ''' import cv2 import os def access_pixels(frame): print(frame. ...
- python opencv show图片,debug技巧
debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ...
- RPi 2B python opencv camera demo example
/************************************************************************************** * RPi 2B pyt ...
- Python OpenCV图片转视频 工具贴(三)
Python OpenCV图片转视频 粘贴即用,注意使用时最好把自己的文件按照数字顺序命名.按照引导输入操作. # 一键傻瓜式引导图片串成视频 # 注意使用前最好把文件命名为数字顺序格式 import ...
随机推荐
- 利用mysqlbinlog_flashback闪回丢失数据
today,i'll have a test with the open source tool mysqlbinlog_flashback which is released by ...
- 利用MyFlash闪回丢失数据
MyFlash is an open source tool released by Meituan-Dianping which can be used to flashback MyS ...
- ffmreg thinkphp 控制器 获取音频视频详细信息(获取时长)
FFmpeg下载:http://ffmpeg.zeranoe.com/builds/ 下载并解压FFmpeg文件夹: 打开你想安装的任意磁盘,例如:d盘.新建一个名为“ffmpeg”的文件夹,将第二步 ...
- 3D立方体
效果图 主要用到的3D属性 1.保留子元素的3d属性:transform-style:preserve-3d; 2.2D变形属性: ①transform:translate()平移,分X轴,Y轴,Z轴 ...
- 学习新框架laravel4 第一天(- -! 新公司版本使用的4,所以还要重新学习)
路由使用: //根目录 Route::get('/', function() { return View::make('hello'); }); 自定义模板: /app/views/home/inde ...
- Docker之centos 简单安装
centos6因为系统自带的可执行的应用程序与 docker 包名字发生冲突,所以重新命名 docker 的RPM包名字为 docker-io. 首先卸载docker包 sudo yum -y rem ...
- STM32(10)——窗口看门狗
简介: 窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 ...
- ruby 爬虫爬取拉钩网职位信息,产生词云报告
思路:1.获取拉勾网搜索到职位的页数 2.调用接口获取职位id 3.根据职位id访问页面,匹配出关键字 url访问采用unirest,由于拉钩反爬虫,短时间内频繁访问会被限制访问,所以没有采用多线程, ...
- shell之lvm
#!/bin/bash #this script for LVM echo "Initial a disk..." echo -e "\033[31mWarning: ...
- Redis系列化方式有哪些?哪个系列化性能最好?
Redis系列化方式有JDK系列化.JSON系列化.XML系列化等多种.我专门测试过,在我的笔记本电脑上保存5万条User对象到Redis,JDK系列化方式平均要15秒,JSON系列化方式只要13秒多 ...