前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV 图像合成视频

OpenCV 图像合成视频

作者头像
为为为什么
发布2024-06-28 10:21:39
850
发布2024-06-28 10:21:39
举报
文章被收录于专栏:又见苍岚又见苍岚

OpenCV 可以将图像转为视频帧,本文记录相关用法。

简介

OpenCV 将图像合成视频的方法核类为 cv::VideoWriter,参数如下:

参数名

含义

备注

filename

保存视频的文件名。

fourcc

指定视频编解码器的 FourCC 代码,用于将视频压缩成指定格式,例如:“XVID”、“MJPG”, "mp4v"等。

可以使用 cv2.VideoWriter_fourcc() 函数来获取 FourCC 代码。

fps

指定视频帧率,即每秒显示的帧数。

frameSize

指定视频帧的大小,即视频的分辨率。

可以使用 (width, height) 形式的元组来指定。

isColor

指定是否为彩色视频。

如果为 True,则为彩色视频;如果为 False,则为灰度视频 ( 选项仅在 Windows 下支持)。

其中,前三个参数是必需的,后两个参数是可选的。

cv2.VideoWriter_fourcc()

该函数接收四个字符作为输入参数,构造要使用的编解码器的 fourcc 代码。

官方文档

使用举例:

代码

格式

cv2.VideoWriter_fourcc(‘P’,‘I’,‘M’,‘1’)

该参数是MPEG-1编码类型,文件名后缀为.avi

cv2.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’)

motion-jpeg

cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’)

MPEG-4编码 .mp4 可指定结果视频的大小

cv2.VideoWriter_fourcc(‘X’,‘2’,‘6’,‘4’)

MPEG-4编码 .mp4 可指定结果视频的大小

cv2.VideoWriter_fourcc(‘I’, ‘4’, ‘2’, ‘0’)

该参数是YUV编码类型,文件名后缀为.avi

cv2.VideoWriter_fourcc(‘X’, ‘V’, ‘I’, ‘D’)

该参数是MPEG-4编码类型,文件名后缀为.avi,可指定结果视频的大小

cv2.VideoWriter_fourcc(‘T’, ‘H’, ‘E’, ‘O’)

该参数是Ogg Vorbis,文件名后缀为.ogv

cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’)

该参数是Flash视频,文件名后缀为.flv

这里 有完整的编码器代码列表。

cv2.VideoWriter

获取到 fourcc 之后,可以创建 VideoWriter 对象了

1

writer = cv2.VideoWriter(output_video_name, fourcc, 6, (width, height))

将图像用该对象写入到文件中即可。

示例代码:

1234567891011121314151617181920212223242526272829

def img2video(image_path_list, output_video_name, fps, resize=None): if resize is not None: shape = (resize[0], resize[1]) else: shape = None # 获取图像的尺寸 image = cv2.imread(image_path_list[0]) image = vv.to_colorful_image(image) if shape is not None: image = vv.image_resize(image, shape) height, width, channels = image.shape shape = (width, height) # 创建视频 writer fourcc = cv2.VideoWriter.fourcc(*'mp4v') # 使用mp4视频编码 out = cv2.VideoWriter(output_video_name, fourcc, fps, (width, height)) # 遍历图像路径列表,并将图像写入视频文件 for image_path in vv.tqdm(image_path_list): image = cv2.imread(image_path) image = vv.to_colorful_image(image) image = vv.image_resize(image, shape) out.write(image) # 释放writer out.release()

该函数封装在 vvdutils 库 img2video 函数中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-6-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • cv2.VideoWriter_fourcc()
  • cv2.VideoWriter
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档