Python实现图片与视频互转代码实战(亲测有效)
作者:X_Imagine 发布时间:2021-05-30 17:21:03
标签:Python,图片,视频,互转
一、 图片转视频
任务需求背景
在标注数据的过程中,需要【反复】浏览大量图片(万张以上的数量级),确认图片中的目标类别以及室内户型布局。但是,在电脑上浏览图片有很大的不足:(a)需要持续点击鼠标或者键盘;(b)图片加载跟不上点击速度。
值得注意的是:网上有很多代码(图片转视频),但是真正能用的几乎很少,本博文的代码经过测试,可以成功生成视频。
代码依赖库
opencv-python==4.5.2
numpy==1.19.2
glob(python自带模块)
代码实战
基本步骤如下:
a. 使用glob
获取路径下的所有图片;
b.cv2.imread()
读取所有图片;
c. 将读取的图片存于列表中;
d. 使用cv2.VideoWriter()
创建VideoWriter
对象,注意参数的设置;
e. 使用cv2.VideoWriter().write()
保存每一帧图像到视频文件;
f. 释放VideoWriter
对象;
import cv2
import numpy as np
import glob
import os
# 其它格式的图片也可以
img_array = []
for filename in glob.glob('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/rgb/*.png'):
img = cv2.imread(filename)
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
# avi:视频类型,mp4也可以
# cv2.VideoWriter_fourcc(*'DIVX'):编码格式
# 5:视频帧率
# size:视频中图片大小
out = cv2.VideoWriter('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/project-all.avi',
cv2.VideoWriter_fourcc(*'DIVX'),
5, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
下图是原始图片数据:
生成的视频文件(播放中):
来源:https://blog.csdn.net/kxh123456/article/details/121692474


猜你喜欢
- 看过 Vue 源码的同学可以知道,<keep-alive>、<transition>、<transition-
- 一. valid卷积的梯度我们分两种不同的情况讨论valid卷积的梯度:第一种情况,在已知卷积核的情况下,对未知张量求导(即对张量中每一个变
- numpy.flip(m, axis=None)Reverse the order of elements in an array alon
- 一、configparser模块是什么可以用来操作后缀为 .ini 的配置文件;python标准库(就是python自带的意思,无需安装)二
- 最近在做一个项目,用双通道神经网络,每个通道输入不同数据训练,具有相同label。开始没想到如何实现,网上很多例子都是单通道,即便找到双通道
- 迭代首先理解下什么是迭代,python中所有从左往右扫面对象的方式都是可迭代的有哪些方式是可迭代的:1.文件操作 我
- 一、前言大家都知道游戏文字、文章等一些风控场景都实现了敏感词检测,一些敏感词会被屏蔽掉或者文章无法发布。今天我就分享用Go实现敏感词前缀树来
- 1. 创建微信公众号首先,你需要注册一个微信公众号。访问微信公众平台,使用你的微信账号登录,并按照提示创建一个新的公众号。2. 开通微信公众
- 测试代码1:def test(self): data = {"add": {"doc":
- 首先呢,需要有两个mysql服务器。如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样。我用的是一个
- 网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。安装模块PIL:Python I
- <?php /********************************************** *&n
- pandas.read_csv()遇到读进来乱码问题1.设置encoding='gbk'或者encoding='ut
- #@project = facepalm#@file = main#@author = Maoliang Ran#@create_time
- 先看下jupyter和pycharm环境的差别左边是jupyter-------------------------------------
- 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们
- 使用Python 2.7 + pywin32 + wxpython开发每隔一段时间检测一下服务是否停止,如果停止尝试启动服务。进行服务停止日
- 首先以只读方式打开单词文件,利用列表推导式创建两个列表列表sta记录各单词出现的次数,列表freq记录各单词出现的频率f = open(
- i前端:nput_test.html<!DOCTYPE html><html><head lang="
- 异常的传递性在 Python 中,异常的传递性指的是,当一个异常没有被处理时,它会沿着调用栈向上抛出,直到被处理或者导致程序崩溃。具体来说,