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
投稿
猜你喜欢
- 1.外形尺寸尺寸单位:只用默认的像素或者其他字符类的值!,不要用英寸毫米之类的内容。btn = tkinter.Button(root,te
- 引言:关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂。偶尔发现了这篇文章,总结得很经典,文章流量也
- 在我们制作主页的过程中,用到表格的地方非常多,灵活运用表格技巧可以为我们的网页增色不少,这里我就详细介
- 前言本文继续学习下 Python 编程在网络攻防领域的应用,主要是通过 Python 脚本进行 SSH 登录爆破和 FTP 服务登录爆破。S
- 1.首先到jetbrains下载专业版 https://www.jetbrains.com/pycharm/download/#sectio
- 没配置的可以看一下我上一篇 地址开启小皮数据库text 数据库表 student 字段 student_no name age sex效果图
- 这篇论坛文章(赛迪网技术社区)详细讲解了SQL Server海量数据导入的最快方法,更多内容请参考下文:最近做某项目的数据库分析,要实现对海
- Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。1.PHP加密扩展库Mcrypt安装在标准的PHP安装过程中并没
- 若是只引用jquery的话,监听单选按钮改变事件如下:<input type="radio" name="
- 在tensorflow中,有三种方式输入数据1. 利用feed_dict送入numpy数组2. 利用队列从文件中直接读取数据3. 预加载数据
- 代码'########### '检测远程文件是否存在 '########### function CheckURL(
- 内容摘要:asp使用最多的就是ACCESS数据库和ms sql server数据库,本文列出了asp连接这两个数据库的方
- Python计算器加减乘除,供大家参考,具体内容如下1、效果图2、代码# coding=utf-8import sysfrom PyQt5.
- 简单的说:装饰器主要作用就是对函数进行一些修饰,它的出现是在引入类方法和静态方法的时候为了定义静态方法出现的。例如为了把foo()函数声明成
- Mysql安装、配置、优化,供大家参考,具体内容如下Mysql下载首先登入官网下载mysql的安装包,官网地址https://dev.mys
- 本文实例为大家分享了原生js实现波浪导航效果的具体代码,供大家参考,具体内容如下展示效果:源码展示:<!doctype html>
- 导语每日游戏更新系列——今天带大家来看看扫雷小游戏!它是许多人接触到的第一款游戏,大概也是广大办公族和无网学生无聊时消遣的最佳游戏。在那些还
- 使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出
- 今天和某朋友聊天,谈到他们公司的一个小问题。如下:表A设备表,存储MAC地址,省份,城市,区。表B软件表,存储MAC地址,软件名字。功能是可
- 一、opencv是什么?OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.二、使用步骤1.引入库代码如下:import cv2