Opencv python 图片生成视频的方法示例

 更新时间:2020年11月18日 10:21:10   作者:廷益--飞鸟  
这篇文章主要介绍了Opencv python 图片生成视频的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文主要介绍了Opencv图片生成视频,分享给大家,具体如下:

在这里插入图片描述

生成视频

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 图片生成视频的方法示例的文章就介绍到这了,更多相关Opencv图片生成视频内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详谈Python 窗体(tkinter)表格数据(Treeview)

    详谈Python 窗体(tkinter)表格数据(Treeview)

    今天小编就为大家分享一篇详谈Python 窗体(tkinter)表格数据(Treeview),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python 使用list和tuple+条件判断详解

    Python 使用list和tuple+条件判断详解

    这篇文章主要介绍了Python 使用list和tuple+条件判断详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Django瀑布流的实现示例

    Django瀑布流的实现示例

    在浏览一些网站时,经常会看到类似于这种满屏都是图片,本文主要介绍了Django瀑布流的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-03-03
  • Python 6种基本变量操作技巧总结

    Python 6种基本变量操作技巧总结

    这篇文章主要为大家总结了Python必备的6种基本变量操作技巧,文中通过图片合示例详细为大家进行了介绍,感兴趣的小伙伴可以了解一下
    2022-03-03
  • python lambda函数及三个常用的高阶函数

    python lambda函数及三个常用的高阶函数

    这篇文章主要介绍了python lambda函数及三个常用的高阶函数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python如何实现的简单购物车程序

    Python如何实现的简单购物车程序

    这篇文章主要介绍了Python如何实现的简单购物车程序,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-05-05
  • 朴素贝叶斯Python实例及解析

    朴素贝叶斯Python实例及解析

    这篇文章主要为大家详细介绍了朴素贝叶斯Python算法实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python如何使用Gitlab API实现批量的合并分支

    Python如何使用Gitlab API实现批量的合并分支

    这篇文章主要介绍了Python如何使用Gitlab API实现批量的合并分支,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • python+requests接口自动化框架的实现

    python+requests接口自动化框架的实现

    这篇文章主要介绍了python+requests接口自动化框架的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python Datetime模块和Calendar模块用法实例分析

    Python Datetime模块和Calendar模块用法实例分析

    这篇文章主要介绍了Python Datetime模块和Calendar模块用法,结合实例形式分析了Python日期时间及日历相关的Datetime模块和Calendar模块原理、用法及操作注意事项,需要的朋友可以参考下
    2019-04-04

最新评论