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中字符编码简介、方法及使用建议
Jan 08 Python
Python编程中的文件操作攻略
Oct 16 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
python多线程socket编程之多客户端接入
Sep 12 Python
python批量替换页眉页脚实例代码
Jan 22 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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 visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
mongodb和php的用法详解
2019/03/25 PHP
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
详解python 发送邮件实例代码
2016/12/22 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
公司年会主持词
2014/03/22 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
房展策划方案
2014/06/07 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
个人政治思想总结
2015/03/05 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
pycharm无法安装cv2模块问题
2022/05/20 Python