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如何import文件夹下的文件(实现方法)
Jan 24 Python
深入浅析Python中的yield关键字
Jan 24 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
基于python if 判断选择结构的实例详解
May 06 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
如何判断pytorch是否支持GPU加速
Jun 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
NOT NULL 和NULL
2007/01/15 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
JavaScript数组迭代方法
2017/03/03 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
java字符串格式化输出实例讲解
2021/01/06 Python
如何将字串String转换成整数int
2015/02/21 面试题
精彩的英文自荐信
2014/01/30 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
教师听课评语大全
2014/12/31 职场文书
爱心募捐感谢信
2015/01/22 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
python代码实现备忘录案例讲解
2021/07/26 Python