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 11 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
python实现键盘输入的实操方法
Jul 16 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
解决Mac下使用python的坑
Aug 13 Python
python实现生成Word、docx文件的方法分析
Aug 30 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
python实战之90行代码写个猜数字游戏
Apr 22 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批量生成缩略图的代码
2008/07/19 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python协程的用法和例子详解
2017/09/09 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
复古服装:RetroStage
2019/05/10 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
类和结构的区别
2012/08/15 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
主治医师岗位职责
2013/12/10 职场文书
中秋节活动总结
2014/08/29 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
Java使用Unsafe类的示例详解
2021/09/25 Java/Android