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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用opencv-python(cv2)如何将视频裁成图像? -> 正文阅读

[人工智能]使用opencv-python(cv2)如何将视频裁成图像?

在制作数据集时,首先将网上搜集到的视频裁成图像,可是如何去实现呢?

考虑到opencv-python中有此类方法,故此篇博客由此诞生。


注意,视频文件在笔者文件:D:\data\element (由于此数据集现处于研究阶段,尚未发布,且对于笔者特别重要,于是将其马赛克)
在这里插入图片描述产生新的数据集在笔者文件:D:\data\Video
在这里插入图片描述一个视频会裁成很多图片于是,生成的数据集细分为:

D:\data\Video\1
D:\data\Video\2
D:\data\Video\3
D:\data\Video\4
D:\data\Video\5
D:\data\Video\6
注意123456为视频的名字产生的文件夹

需要用到的知识点:

参考博客:cv2.VideoCapture()用法及举例

# 其中VideoCapture中的0是参数,代表电脑的内置摄像头,
# 如果有两个内置摄像头则为0,1,
# 也可以放我们需要的视频路径,比如我自己的 D:\data\element\1.mp4
1.cap = cv2.VideoCapture(0)

# cap.read()代表按帧独取视频, 
# 其中ret代表布尔值,读帧正确则返回True,返回False表示无数据后续break
# frame代表某帧的图像
2.ret,frame = cap.read()

# cv2.waitKey()代表等待键盘输入
# cv2.waitKey(1)代表延时1ms切换到下一帧图像
# cv2.waitKey(0)只显示当前帧的图像
3. cv2.waitKey(1)

# cap.release()释放摄像头
4. cap.release()

# 统计这幅图有多少帧
5. cap.get(cv2.CAP_PROP_FPS)

非cv2部分知识:

# 生成文件夹所用,如果不存在此文件夹就生成。
def makedir(name, phase):
    filedir = os.path.join(name, phase)
    if not os.path.exists(filedir):
        os.makedirs(filedir)
    return filedir

代码:

import cv2
import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

# D:\data\element
video_root = os.path.join(BASE_DIR, 'element')

# open the folder
video_dirs = os.listdir(video_root)


def makedir(name, phase):
    filedir = os.path.join(name, phase)
    if not os.path.exists(filedir):
        os.makedirs(filedir)
    return filedir


# Create a new folder to hold the new dataset
New_Folder = makedir(BASE_DIR, 'Video')


def video_to_photo():
    # got all video files
    for index, video_file in enumerate(video_dirs):

        # got the video file root
        video_file = os.path.join(video_root, video_file)

        # read video
        cap = cv2.VideoCapture(video_file)

        # The number of videos cropped from the video
        count = 0
        Folder = makedir(New_Folder, str(index + 1))
        # frames
        fps = cap.get(cv2.CAP_PROP_FPS)
        # whether it is opened normally
        while cap.isOpened():
            ret, frame = cap.read()
            if frame is None:
                break
            if ret == True:
                count += 1
                if count < fps:
                    save_root = os.path.join(Folder, str(count) + '.jpg')
                    print("writing " + save_root + " ...")
                    cv2.imwrite(save_root, frame)
            cv2.waitKey(1)
    cap.release()


if __name__ == '__main__':
    video_to_photo()
    print("well done! ")

结果:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:50:53  更:2022-04-28 11:52:57 
 
开发: 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 8:46:42-

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