Opencv python 图片生成视频的方法示例
作者:廷益--飞鸟 发布时间:2021-11-08 22:18:38
标签:Opencv,图片,视频
本文主要介绍了Opencv图片生成视频,分享给大家,具体如下:
生成视频
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()
来源:https://blog.csdn.net/weixin_45875105/article/details/109741575
0
投稿
猜你喜欢
- 很对编程语言都支持递归函数,Go语言也不例外,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成
- 1.断点调试是啥?难不难?断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下
- 什么是 NFT?NFT英文全称为Non-Fungible Token,翻译成中文就是:非同质化代币,具有不可分割、不可替代、独一无二等特点。
- 前言favicon.ico是网站的图标也是网站的头像,简单来说,就是让我们的网站更加好看。本文主要给大家介绍了关于优雅处理Django中fa
- 如下所示:import numpy as npimport codecs, json a = np.arange(10).reshape(2
- 本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下原图图片转换后的成果源码# -*- codi
- 说明1、需要一个函数来处理的参数数是不确定的,这时可以使用多值参数。2、python有两个多值参数,在参数名前增加一个*可以接收元组。在参数
- 本文实例讲述了Python线程threading模块用法。分享给大家供大家参考,具体如下:threading-更高级别的线程接口源代码:Li
- 压缩数据库文件可以提高数据库的性能,但是有些时候在压缩数据库时,系统会提醒用户该数据库不能压缩。如果在Access数据库中删除数据库对象,或
- 前言今天给大家分享一下刷到的关于数值处理的算法题。虽然题目比较简单但是问题的处理方式值得我们学习。小学生算术涉及到加法进位、阶乘精确值用于计
- 目录Mock概念Mock类简单的例子体验下 Mock 的功能特点一个相对正式的 Mock 例子一个完整的测试例子断言方法Mock概念mock
- 本文为大家分享了Python遗传算法解决最大流问题,供大家参考,具体内容如下Generate_matrixdef Generate_matr
- 正题: 1.1 javascript的灵活性 面向对象对象的Javascript编程模式:1、可以保存状态 2、具有对象内部才能调用的方法
- 使用picasa的时候,注意到它首先是显示模糊的图片,然后图片突然变得清晰,这样做有一定的好处——picasa的图片翻页是用javascri
- 1000块钱做个百度?能提出这种要求的客户实乃乙方克星、民族之光、科创永动机、西虹市一大杰出青年,诺奖永远得不到的人才。但作为一个硬核的程序
- 如果你用SQL Server 2005 Management Studio建立函数或存储过程,你会注意到这些新窗口中都是模板。通常,你可以获
- 如下所示:#! /usr/bin/python3# coding = utf-8# from PyQt5 import QtGui,QtCo
- 对于xml2ddl项目,Freshmeat.org提供了一整套基于GNU或者GPL通用公共许可证下的Python程序。在一个运行的Pytho
- 在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等;Python
- 方法一:def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] l