OpenCV Python 实现图片生成视频的方法示例
本文介绍了使用 OpenCV 和 Python 将图片序列生成为视频文件的方法。通过封装 RecordMovie 类,实现视频写入对象的创建、帧数据写入及资源释放。示例代码展示了如何结合随机移动算法处理图像,并保存为 mp4 格式,供开发者参考。
OpenCV Python 图片生成视频实现
本文主要介绍了利用 OpenCV 在 Python 环境下将图片序列转换为视频文件的技术方案,旨在为相关应用提供参考。

视频生成实现
import random as rd
import cv2 as cv
import numpy as np
# 保存视频
class RecordMovie(object):
def __init__(self, img_width, img_height):
self.video_writer = None # 视频对象
self.is_end = False # 结束保存视频
self.img_width = img_width # 宽度
self.img_height = img_height # 高度
# 创建 视频写入对象
def start(self, file_name, freq):
# 创建视频格式
four_cc = cv.VideoWriter_fourcc(*'mp4v')
img_size = (self.img_width, self.img_height) # 视频尺寸
# 创建视频写入对象
self.video_writer = cv.VideoWriter()
self.video_writer.open(file_name, four_cc, freq, img_size, True)
# 写入图片帧
def record(self, img):
if self.is_end is False:
self.video_writer.write(img)
# 完成视频 释放资源
def end(self):
self.is_end = True
self.video_writer.release()
def move_image(img_src):
img_height, img_width = img_src.shape[:2]
# 随机 xy平移方向与大小设置
x_size = rd.randint(-3, 3)
y_size = rd.randint(-3, 3)
# 自定义转换矩阵
transform_matrix = np.float32([[1, 0, x_size], [0, 1, y_size]])
# 执行平移
return cv.warpAffine(img_src, transform_matrix, (img_width, img_height))
def main():
# 1.读取图片
img_org = cv.imread("img.png", cv.IMREAD_GRAYSCALE)
# 2.显示图片
cv.imshow("org", img_org)
cv.namedWindow("shift")
# 3.视频文件生成
height, width = img_org.shape[:2]
print(height, width)
rm = RecordMovie(width, height)
# 设置视频文件名称 频率
rm.start("test.mp4", 20)
# 4.图片写入视频
for i in range(300):
# 图片微调调整
img_move = move_image(img_org)
img_move = cv.cvtColor(img_move, cv.COLOR_GRAY2RGB)
rm.record(img_move)
cv.imshow("shift", img_move)
key = cv.waitKey(10)
if key == 27: # esc 按键
break
# 5.关闭视频文件
rm.end()
if __name__ == '__main__':
main()


至此,关于使用 OpenCV 和 Python 将图片生成视频的示例介绍完毕。如需了解更多相关技术细节,建议查阅本站往期文章或继续浏览后续内容,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









