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


Posted in Python onNovember 18, 2020

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

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 图片生成视频的方法示例

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

到此这篇关于Opencv python 图片生成视频的方法示例的文章就介绍到这了,更多相关Opencv图片生成视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux下python抓屏实现方法
May 22 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
django表单实现下拉框的示例讲解
May 29 Python
利用python将图片版PDF转文字版PDF
May 03 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python集合常见运算案例解析
Oct 17 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
calendar在python3时间中常用函数举例详解
Nov 18 #Python
Python 远程开关机的方法
Nov 18 #Python
python 元组和列表的区别
Dec 30 #Python
基于Python爬取搜狐证券股票过程解析
Nov 18 #Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 #Python
Anaconda的安装与虚拟环境建立
Nov 18 #Python
如何基于Python pygame实现动画跑马灯
Nov 18 #Python
You might like
PHP添加MySQL数据记录代码
2008/06/07 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
浅析Python数据处理
2018/05/02 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
线程同步的方法
2016/11/23 面试题
《水上飞机》教学反思
2014/04/10 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
公司领导班子对照材料
2014/08/18 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
民事和解协议书格式
2014/11/29 职场文书
万能检讨书
2015/01/27 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
MongoDB数据库之添删改查
2022/04/26 MongoDB
Linux安装Docker详细教程
2022/07/07 Servers