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 相关文章推荐
python中 ? : 三元表达式的使用介绍
Oct 09 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
TensorFlow变量管理详解
Mar 10 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Python中GIL的使用详解
Oct 03 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
python 贪心算法的实现
Sep 18 Python
如何完美的建立一个python项目
Oct 09 Python
cookies应对python反爬虫知识点详解
Nov 25 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实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
禁止F5等快捷键的JS代码
2007/03/06 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
js中document.write的那点事
2014/12/12 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
用Python解决计数原理问题的方法
2016/08/04 Python
Python语言描述随机梯度下降法
2018/01/04 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
商务日语毕业生自荐信
2013/11/23 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
接待员岗位职责
2015/02/13 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle