【方便的Opencv】实现图片合成视频+附带图片生成gif
学习前言:
最近在学习OpenCv播放视频,学习完毕后,神奇的发现:其实播放视频就是把视频中的图像一帧帧的抽取出来,按照一定的时间间隔展示罢了。 既然如此,那么我能不能逆向思维——倒过来?把一帧帧图片按照一定时间间隔轮流播放变成视频呢? 抱着这样的办法, 我尝试了实验,最后发现真的可以做得到,而且OpenCv也封装了这个函数,就是使用中有非常多的坑,但是我也一一填补,以下代码函数可以即拿即用!
【方便的Opencv】实现图片合成视频+附带图片生成gif
学习前言:
实现代码:
将一个文件夹下的图片生成gif
实现代码:
'''
fps:
帧率:1秒钟有n张图片写进去[控制一张图片停留5秒钟,那就是帧率为1,重复播放这张图片5次]
如果文件夹下有50张 534*300的图片,这里设置1秒钟播放5张,那么这个视频的时长就是10秒
'''
请确保每一张图片都是一样的大小,如果不是请手动resize至一致!
# -*- coding: UTF-8 -*-
import os
import cv2
import time# 图片合成视频
def picvideo(img_path, size):filelist = os.listdir(img_path) # 获取该目录下的所有文件名fps = 24video_path = os.path.join('Package\\video', img_path.split('\\')[-1] + ".avi") # 导出路径# 可以用(*'DVIX')或(*'X264'),如果都不行先装ffmepgfourcc = cv2.VideoWriter_fourcc('I','4','2','0') # 不同视频编码对应不同视频格式(例:'I','4','2','0' 对应avi格式)video = cv2.VideoWriter(video_path, fourcc, fps, size, True)for i in range(len(filelist)):item = os.path.join(img_path, str(i)+'.png')img = cv2.imread(item) # 使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。video.write(img) # 把图片写进视频video.release() # 释放print('video_path:', video_path)return video_pathdef main(img_path):img_list = os.listdir(img_path)img = cv2.imread(os.path.join(img_path, img_list[7]))w, h, _ = img.shapereturn picvideo(img_path, (h, w)) # 尺寸要调转,挖槽,坑死他爹地我了if __name__ == '__main__':main('Package\Origrial\\tds_nm_01')
将一个文件夹下的图片生成gif
'''
Author:
Email:
公众号:
'''
import os
import imageio
def create_gif(img_path, gif_name, duration = 1.0):
'''
:param image_list: 这个列表用于存放生成动图的图片
:param gif_name: 字符串,所生成gif文件名,带.gif后缀
:param duration: 图像间隔时间
:return:
'''
frames = []
for image_name in os.listdir(img_path):
temp = os.path.join(img_path, image_name)
print(temp)
frames.append(imageio.imread(temp))
imageio.mimsave(gif_name, frames, 'GIF', duration=duration)
return
def main():
#这里放上自己所需要合成的图片文件夹路径
image_path = r'C:\Users\86137\Desktop\gaitRecognition_platform\Package\Fgmask\tds_nm_03'
gif_name = 'new.gif'
duration = 0.08 # 播放速度yuexiaoyuekuai
create_gif(image_path, gif_name, duration)
if __name__ == '__main__':
main()
完毕!
最后说一声,Opencv的学习之路漫漫,希望我们能一起加油,共同进步!最后的最后,如果这篇文章有帮助到大家,麻烦点赞+收藏一下!
【方便的Opencv】实现图片合成视频+附带图片生成gif相关推荐
- 【实操】python opencv将图片合成视频,并插入音频
简介:将一组图片合成视频,并插入音频.用到opencv,ffmpy,pydub等库. 目录 一.统一图片大小及类型,并按数字排序 二.图片合成视频 三.音频的合并与剪裁 四.音视频融合 opencv基 ...
- PYthon将图片合成视频方法一:OpenCV
PYthon将图片合成视频方法一:OpenCV 使用情景 主要知识点 代码 使用情景 做短视频编辑的时候,将图片合成为视频,是经常碰到的情况.本文将介绍使用python的OpenCV库,将图片合成为视 ...
- opencv python图片合成视频
opencv python 图片合成视频 经常用到,记录一下,代码基本上都来自这里这篇博客 只是做了小小的改进,将文件的字符串排序改成了按照文件名排序,合成视频的时候不会乱. 侵删. # -*- co ...
- OpenCV 图片合成视频
# -*- coding: UTF-8 -*-import os import cv2 import time import numpy as np # 图片合成视频 def picvideo(pat ...
- 用OpenCV将视频分解成单帧图片,图片合成视频
本文做的是基于opencv将视频帧转成图片输出,由于一个视频包含的帧数过多,经常我们并不是需要它的全部帧转成图片,因此我们希望可以设置每隔多少帧再转一次图片(本文设置为30帧),若有人需求是只需要前多 ...
- Python + OpenCV 图片合成视频遇到的问题
Python + OpenCV 图片合成视频遇到的问题 其中cv2.VideoWriter 中的四个参数: 文件名 视频编码格式 帧率 视频的宽度和高度 注意:需要合成的视频和对应图片的宽度和高度要相 ...
- opencv图片合成视频提高视频清晰度参数
之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下 /** 图片合成视频 @param mp4SavePath 视频保存路径 @param imageDir 图片地址 @param rate ...
- python+OpenCV 图片合成视频
''' opencv_机器学习-图片合成视频 实现步骤: 1.加载视频 2.读取视频的Info信息 3.通过parse方法完成数据的解析拿到单帧视频 4.imshow,imwrite展示和保存 ''' ...
- python脚本——图片重命名、图片合成视频、faster-rcnn画P-R曲线
调试faster rcnn算法实用的python脚本 目录 调试faster rcnn算法实用的python脚本 一.前言 二.常用python脚本 三.后记 一.前言 最近在做关于目标检测算法的研究 ...
最新文章
- virtualbox 在物理机是无线网卡的时候做桥接配置 - juandx - 博客园
- server2016安装mysql_windows server2016安装MySQL5.7.19解压缩版教程详解
- JDK 8中的流驱动的集合功能
- 「装X指南」:手把手教你包装成程序员大佬
- Servlet期末复习笔记
- 万年历黄历星座查询v3.6.9引流吸粉 实用工具 流量变现小程序
- 分享5个制定市场营销神器
- .NET ASP.NET 页生命周期概述
- Linux下Oracle移植数据
- [学习][数据结构]二叉搜索树
- matlab 求全波整流信号的傅里叶系数
- vue input手机号验证
- 摄像头网络直播方案LiveGBS部署问题
- 基于 Wio Terminal 实现的网络天气预报助理
- win7旗舰版出现COM Surrogate已停止工作
- Moglue:无需编程的交互式电子书制作软件(视频演示)
- python计算互信息_互信息公式及概述
- Android什么是匿名内部类,Android里的匿名内部类
- OneNote for win10 手动同步方法
- 同一账户在不同地方登录问题
热门文章
- [开源免费] ZXTouch - iOS11-14 iOS13 模拟触摸 模拟点击 比触动精灵和AutoTouch更好用的插件
- 中介者模式及其应用场景
- Win7环境下硬盘安装XP(无光驱/光盘安装XP)
- Debezium实战-第7章 其它-Debezium UI
- win10开机占用内存大,资源管理器也看不到运行进程
- 电流型和电压型PHY
- Google 出现崩溃 错误代码:STATUS_BREAKPOINT
- windows 7 home版转旗舰版
- JAVA+JDBC超级详解---从连接数据库到连接池
- APMServ更新PHP,APMServ升级PHP至5.3