IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python-opencv视频转图片+图片转视频(步骤详解)(亲测有效) -> 正文阅读

[人工智能]python-opencv视频转图片+图片转视频(步骤详解)(亲测有效)

背景

由于作业需要,尝试了图片与视频的相互转化,奈何看到很多文章尝试后总会出点问题,因此这里一并记录解决
不过目前图片转视频后仍然存在闪烁问题,但看到较好的解决方法后再更新

视频转图片

详见注释

import cv2
def getpic(videoPath, svPath):#两个参数,视频源地址和图片保存地址
    cap = cv2.VideoCapture(videoPath)

    numFrame = 0
    while True:
        # 函数cv2.VideoCapture.grab()用来指向下一帧,其语法格式为:
        # 如果该函数成功指向下一帧,则返回值retval为True
        if cap.grab():
            # 函数cv2.VideoCapture.retrieve()用来解码,并返回函数cv2.VideoCapture.grab()捕获的视频帧。该函数的语法格式为:
            # retval, image = cv2.VideoCapture.retrieve()image为返回的视频帧,如果未成功,则返回一个空图像。retval为布尔类型,若未成功,返回False;否则返回True
            flag, frame = cap.retrieve()
            if not flag:
                continue
            else:
                numFrame += 1
                #设置图片存储路径
                newPath = svPath + str(numFrame) + ".jpg"
                # cv2.imencode()函数是将图片格式转换(编码)成流数据,赋值到内存缓存中;主要用于图像数据格式的压缩,方便网络传输。
                cv2.imencode('.jpg', frame)[1].tofile(newPath)
                print(numFrame)
        else:
            break
getpic("test.mp4", "G:/zanshipic/")
print("all is ok")

主要参考自:https://blog.csdn.net/u010555688/article/details/79182362

图片转视频

详见注释

import cv2
import os
# 其它格式的图片也可以
img_array = []
path = "G:/zanshipic/"  # 图片文件路径
filelist = os.listdir(path)  # 获取该目录下的所有文件名
for filename in filelist:
    #挨个读取图片
    img = cv2.imread(path+filename)
    #获取图片高,宽,通道数信息
    height, width, layers = img.shape
    #设置尺寸
    size = (width, height)
    #将图片添加到一个大“数组中”
    img_array.append(img)
print("this is ok")
# avi:视频类型,mp4也可以
# cv2.VideoWriter_fourcc(*'DIVX'):编码格式,不同的编码格式有不同的视频存储类型
# fps:视频帧率
# size:视频中图片大小
fps=30
videopath='G:/test10.avi'#图片保存地址及格式
out1 = cv2.VideoWriter(videopath,cv2.VideoWriter_fourcc(*'DIVX'),fps, size)
for i in range(len(img_array)):
    #写成视频操作
    out1.write(img_array[i])
out1.release()
print("all is ok")

主要参考自:https://blog.csdn.net/kxh123456/article/details/121692474

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:28:52  更:2022-02-28 15:30:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:43:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码