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模拟登录百度贴吧(百度贴吧登录)实例
Dec 18 Python
Python压缩和解压缩zip文件
Feb 14 Python
python实现比较两段文本不同之处的方法
May 30 Python
python正则表达式之对号入座篇
Jul 24 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
python 输出所有大小写字母的方法
Jan 02 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
Python内存管理实例分析
Jul 10 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
在Python 的线程中运行协程的方法
Feb 24 Python
python 链接sqlserver 写接口实例
Mar 11 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生成自己的LOG文件
2006/10/09 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
jqTransform美化表单
2015/10/10 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
js模块加载方式浅析
2017/08/12 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Python是如何进行类型转换的
2013/06/09 面试题
生日邀请函范文
2014/01/13 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
2015大学生实训报告
2014/11/05 职场文书
电力培训学习心得体会
2016/01/11 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers