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()

下图是原始图片数据:

生成的视频文件(播放中):

到此这篇关于Python实现图片与视频互转代码实战(亲测有效)的文章就介绍到这了,更多相关Python图片与视频互转内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用Python opencv实现视频与图片的相互转换

    因为最近要经常转换数据集进行实验,因此记录一下. 1.视频转图片 即为将视频解析为一帧一帧的图片: import cv2 vc=cv2.VideoCapture("/home/hqd/PycharmProjects/1/1/19.MOV") c=1 if vc.isOpened(): rval,frame=vc.read() else: rval=False while rval: rval,frame=vc.read() cv2.imwrite('/home/hqd/PycharmP

  • Python+Opencv实现把图片、视频互转的示例

    1. 安装Opencv包 pip install opvencv-python 2.实现代码: 视频转为图片: import cv2 cap=cv2.VideoCapture('E:/video/video-02.mp4') # 获取一个视频打开cap isOpened=cap.isOpened # 判断是否打开 print(isOpened) fps=cap.get(cv2.CAP_PROP_FPS) print(fps) # 获取宽度 width=int(cap.get(cv2.CAP_PR

  • Python实现图片与视频互转代码实战(亲测有效)

    一. 图片转视频 任务需求背景 在标注数据的过程中,需要[反复]浏览大量图片(万张以上的数量级),确认图片中的目标类别以及室内户型布局.但是,在电脑上浏览图片有很大的不足:(a)需要持续点击鼠标或者键盘:(b)图片加载跟不上点击速度. 值得注意的是:网上有很多代码(图片转视频),但是真正能用的几乎很少,本博文的代码经过测试,可以成功生成视频. 代码依赖库 opencv-python==4.5.2 numpy==1.19.2 glob(python自带模块) 代码实战 基本步骤如下: a. 使用g

  • Python实现图片和视频的相互转换

    目录 使用背景 一.视频转图像 二.图像转视频 使用背景 有时候我们需要把很多的图片合成视频,或者说自己写一个脚本去加快或者放慢视频: 也有时候需要把视频裁剪成图片,进行后续操作. 这里提供两种方法,一是视频转图像:二是图像转视频.  一.视频转图像 有时候我们需要把文件夹中的视频按照一定的帧率截取图片,如一秒取三张,为了实现这一需求,我特地编写了代码实现,并且附上了十分详细的说明,为了方便大家改代码实现自己需求(主要为了照顾刚学python的或者只需要用这一需求的小伙伴),本博文的特点如下:

  • Python获取网络图片和视频的示例代码

    目录 1.网络获取Google图像 1.1google_images_download 1.2BeautifulSoup 1.3pyimagesearch 2.网络获取Youtube视频 1.网络获取Google图像 1.1 google_images_download Python 是一种多用途语言,广泛用于脚本编写.我们可以编写 Python 脚本来自动化日常事务.假设我们要下载具有多个搜索查询的谷歌图片.我们可以自动化该过程,而不是手动进行. 如何安装所需的模块: pip install

  • python实现图片,视频人脸识别(dlib版)

    图片人脸检测 #coding=utf-8 import cv2 import dlib path = "img/meinv.png" img = cv2.imread(path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #人脸分类器 detector = dlib.get_frontal_face_detector() # 获取人脸检测器 predictor = dlib.shape_predictor( "C:\\Pytho

  • python绘制字符画视频的示例代码

    目录 读取视频 转为字符 动画 已经11月了,不知道还有没有人看华强买瓜...要把华强卖瓜做成字符视频,总共分为三步 读取视频 把每一帧转为字符画 把字符画表现出来 读取视频 通过imageio读取视频,除了pip install imageio之外,还需要pip install imageio-ffmpeg. 由于视频中的图像都是彩色的,故而需要将rgb三色转为单一的强度,并将转化后的图像装入一个列表中. import imageio import numpy as np import mat

  • 微信小程序使用websocket通讯的demo,含前后端代码,亲测可用

    0.概述websocket (1) 个人总结:后台设置了websocket地址,服务器开启后等待有人去连接它. 一个客户端一打开就去连接websocket地址,同时传递某些识别参数.这样一来后台和客户端连接成功了,然后后台就可以发消息给客户端了,(客户端也可以再回话给后台). (2) socket叫套接字,应用程序用socket向网络发出请求或者应答网络请求. (3) 官方解释的socket 建立连接四步骤: 服务器端开启socket,然后accep方法处于监听状态,等待客户端的连接. 客户端开

  • python字符串,元组,列表,字典互转代码实例详解

    python字符串,元组,列表,字典互相转换直接给大家上代码实例 #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) #字典可以转为元组,返回:('age', 'name', 'class

  • python实现图片,视频人脸识别(opencv版)

    图片人脸识别 import cv2 filepath = "img/xingye-1.png" img = cv2.imread(filepath) # 读取图片 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色 # OpenCV人脸识别分类器 classifier = cv2.CascadeClassifier( "C:\Python36\Lib\site-packages\opencv-master\data\haar

  • Python切割图片成九宫格的示例代码

    这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理非常简单,那就是利用PIL库对原图不断画小区域然后切下来存储成新的小图片. 假设每一个格子的宽和高分别是w.h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h). code snip

随机推荐