Python-OpenCV实现图片和视频相互转换的简单+实用方法(附代码)
近两天刚好需要操作图片转视频,视频转图片小操作,在网上搜了一些博文发现会存在一些小bug。因此,在这里记录一下直接调好就可以使用的代码。
首先是图片转视频(使用对象:尺寸大小都一样的图片)
import os
import cv2
import numpy as nppath = './Output/' # 路径设置(ps:路径不要出现中文!)
filelist = os.listdir(path)
filelist = sorted(filelist) # 按照文件数字进行顺序排序fps = 24 # 视频每秒24帧
size = (512, 512) # 需要转为视频的图片的尺寸video = cv2.VideoWriter("VideoTest.avi", cv2.VideoWriter_fourcc(*'DIVX'), fps, size)
# 视频保存在当前目录下for item in filelist:if item.endswith('.png'):# 找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它item = path + itemimg = cv2.imread(item)video.write(img)video.release()
cv2.destroyAllWindows()
然后,还是图片转视频,使用对象改变(使用对象:图片尺寸大小不同)
import cv2
import globdef resize(img_array, align_mode):_height = len(img_array[0])_width = len(img_array[0][0])for i in range(1, len(img_array)):img = img_array[i]height = len(img)width = len(img[0])if align_mode == 'smallest':if height < _height:_height = heightif width < _width:_width = widthelse:if height > _height:_height = heightif width > _width:_width = widthfor i in range(0, len(img_array)):img1 = cv2.resize(img_array[i], (_width, _height), interpolation=cv2.INTER_CUBIC)img_array[i] = img1return img_array, (_width, _height)def images_to_video(path):img_array = []for filename in glob.glob(path + '/*.png'): #图片格式pngimg = cv2.imread(filename)if img is None:print(filename + " is error!")continueimg_array.append(img)# 图片的大小需要一致img_array, size = resize(img_array, 'largest')fps = 2 # 帧率设置out = cv2.VideoWriter('demo.avi', cv2.VideoWriter_fourcc(*'DIVX'), fps, size)for i in range(len(img_array)):out.write(img_array[i])out.release()def main():path = ".Output/" # 路径(不要带中文的路径!!!)images_to_video(path)if __name__ == "__main__":main()
最后,我们来个视频转图片的代码!
import cv2
import numpy as np# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 图片名字的后缀,int 类型
def save_image(image, addr, num):address = addr + str(num) + '.jpg'cv2.imwrite(address, image)# 读取视频文件
videoCapture = cv2.VideoCapture("./232.avi")# 读帧
success, frame = videoCapture.read()
i = 0
timeF = 40
j = 134
while success:i = i + 1if (i % timeF == 0):j = j + 1save_image(frame, '.\\0', j)print('save image:', i)success, frame = videoCapture.read()
好了,现在我们就已经可以实现图片与视频互相转换啦~~
参考链接:
图片转视频1
图片转视频2
Python-OpenCV实现图片和视频相互转换的简单+实用方法(附代码)相关推荐
- 【opencv】opencv在图片、视频嵌中英文字符的方法
说明:本博文是根据前人已有的成果并结合自己的理解而成的.为了避免让读者感到繁琐,我将运用小学及初中学习的总分总.承上启下的写作技巧进行讲解,力图做到详略有致,言简意赅,图文并茂,通俗易懂. 实验平台: ...
- python opencv调节图片亮度与对比度
python opencv调节图片亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和 ...
- python opencv 得到图片路径image_path的宽wide、高heigh和深度deep
python opencv 得到图片路径image_path的宽wide.高heigh和深度deep 图片路径是:'1.jpg' 下面是具体代码: import cv2 #得到图片路径image_pa ...
- 2021-01-07 python opencv调节图片亮度与对比度
python opencv调节图片亮度与对比度 度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和亮 ...
- Python OpenCV去除图片水印
问题描述 去除百度水印 1.jpg,背景简单 2.jpg,背景复杂 解决方案 安装 pip install opencv-python pip install numpy 方法一.OpenCV提取颜色 ...
- python opencv获取图片分辨率_python-opencv遍历图片像素,并对像素进行操作
看代码: def access_pixels(frame): print(frame.shape) #shape内包含三个元素:按顺序为高.宽.通道数 height = frame.shape[0] ...
- Qt - OpenCV 连续图片生成视频
Qt - OpenCV 连续图片生成视频 此博客始创于:http://blog.csdn.net/lys211 转载请注明出处 主要是测试OpenCV将连续命名的图片转换成视频的过程. OpenCV的 ...
- python opencv 裁剪图片_Python图片裁剪的两种方式——Pillow和OpenCV
在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV.两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧. OpenCV ...
- python cv2 模块图片生成视频
python cv2 模块图片生成视频 事件起因 在工位上写bug的时候觉得窗外风景不错,iPhone自带的延时摄影会根据时长调整压缩比例,然后想下载一个app拍摄固定比例的延时视频. slow sh ...
最新文章
- Debug常用命令 精简版本
- oracle 06502 解决,ora-06502如何解决。。。
- mysql insert concat_MySQL常用内置函数说明+concat+insert(str,m,n,inser_str)+week(now())+ | 学步园...
- git的使用学习(三)时光机穿梭
- EndNote批量实现文献标题首字母大写 附最新版endnote下载
- 我和乘子交替方向法admm_找到最大和交替子序列
- 5月购机指南!新机流畅度排行榜:第一名实至名归
- mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL
- java开发之路——个人开发模板之技巧
- Object-C 关于「链式编程」与「函数式编程」简单实践
- 一秒钟世界上会发生多少事_一秒之中会发生什么
- mysql的scm库_CDH集群手动导入scm库
- Who is in me? -- Freeware on Windows
- xmanager调出图形安装oracle,Xmanager快速连接Linux图形界面教程
- 【2011年全国试题3】已知循环队列存储在一维数组A[0…n-1],且队列非空时,front和rear分别指向队头元素和队尾元素。若初始时队列为空,且
- 安装pyqt5时报错Preparing metadata (pyproject.toml) ... error
- pdf解密工具(超实用)
- 红外光谱图解析知识大全(图文并茂)
- Angular self study 4 - data entered by end user
- xml中处理大于号小于号的方法(Mybatis中大于、小于)
热门文章
- 如何学习前端?看这篇就够了
- “百思不得姐,满满的干货
- java实验报告五_2019JAVA第五周实验报告
- 截图工具 Snagit
- EXCEL文本框及自定义图形内文本内容检索及替换
- JavaScript强化教程——JavaScript 总结
- 服务器分区有什么作用,公认很好的无盘网吧服务器硬盘分区划分和使用经验
- android c pdf,我把所有Android第三方库整理成了PDF,送大厂面经一份!
- 各种资源--可免费下载数据的网站(感觉可以的话来波点赞关注哟)
- 【ppt入门教程】如何在ppt幻灯片中插入GIF格式动态图片