首页 > 编程语言 >【深度学习】使用python做h256编码的视频抽帧获取图片集

【深度学习】使用python做h256编码的视频抽帧获取图片集

时间:2024-05-26 17:29:00浏览次数:23  
标签:视频 python 安装 cv2 抽帧 图片集 visualstudio 数据

文章目录

前言

我们知道,深度学习数据集越多越好,通常1万份数据集才能达到较高的准确率。在图像数据集中,常用多场景下的视频转换大量图片作为图像数据集,此处介绍相关概念以及使用python做h256编码的视频截取成图片视频抽帧获取图片的具体操作方法。

一、python、深度学习、数据集的概念

1.python

python是一种通用高级编程语言。它的设计目标是简单直观、开源、代码易理解、适用于短期开发的日常任务。它完全面向对象,拥有一个强大的标准库和丰富的第三方模块,使得Python在多个领域都能进行快速开发。Python的流行迅速增长部分归功于其清晰简洁的语法和增强的可读性。

2.深度学习

深度学习是一类机器学习算法,它使用多个层逐步从原始输入中逐步提取更高级别的特征。例如,在图像处理中,较低层可以识别边缘,而较高层可以识别对人类有意义的部分,例如数字/字母或面部。

3.数据集

深度学习数据集集合是指由大量标注数据组成的数据集。它们被广泛用于训练和评估深度学习模型,帮助算法理解和解决各种任务,如图像分类、物体检测、语义分割等。
这些数据集集合包含了各种不同类型的数据,涵盖了多个领域和应用场景。例如,ImageNet是一个广泛使用的图像分类数据集,包含数百万张不同类别的图像;COCO是一个用于物体检测和语义分割的数据集,包含了多个对象类别和复杂的场景;MNIST是一个手写数字识别数据集,常用于入门级的机器学习实践等等。

二、使用步骤

1.从visualstudio官网下载

在这里插入图片描述
visualstudio中文汉化
安装D盘并打开VsCode,【Ctrl+Shift+P】,键入configure language,点击安装中文选项,重启VsCode就可以看到中文界面了。
在这里插入图片描述

2 安装python环境

2.1 在visualstudio中安装python包

点击左侧扩展选项,搜索框键入python,选择第一个安装即可。
在这里插入图片描述
当然,如果想用VScode编译简单的C代码,搜索框键入C/C++,安装即可。

2.2 安装python依赖库

创建py文件,编写一段python代码发现报错,这是缺少python依赖库所致,【WIN+S】搜索python出现python 3.11下载安装即可。
在这里插入图片描述
编写一段获取当前时间并打印的python代码,点击右侧编译,在终端框看到当前时间被打印出来。
注意:若没有打印表示安装的有问题,重新安装即可

在这里插入图片描述
【WIN+S】,输入cmd,并以管理员身份运行,输入python ,显示如上图, 代表安装成功,输入exit() 退出py环境,至此,python环境安装成功。

3.安装opencV

由于抽帧操作的python的代码中调用了opencV ,需要安装与python3.11对应版本的opencV。
这里使用cmd命令安装会比较方便。在命令行输入:pip install opencv-python
但有的时候会报如下错误,一般是因为下载cv的源有问题。
在这里插入图片描述
解决方案:在后面加 -i 指定源就可以了(百度搜清华源等)
输入:pip install opencv-python -i https://pypi.doubanio.com/simple/
安装成功如下所示,Warning部分可以忽视
在这里插入图片描述

4.编写python代码

import os
import cv2
import numpy as np
import time
#写一个python读取h265编码的视频文件,将其分割成图片
def h265_to_jpg():
    video_path = 'C:/Users/Zhangliangshan/Videos/Captures/2024-05-06_17-41-50.h265'  #2024-04-22_11-21-34.h265 2024-04-22_11-20-46  2024-04-22_11-19-48
    cap = cv2.VideoCapture(video_path)
    #cap = cv2.VideoCapture(0)
    num = 0

    while True:
        ret, frame = cap.read()
        if ret:
            if  num%4 == 0 :
                cv2.imwrite('C:/Users/Zhangliangshan/Videos/Captures/%d.jpg' % num, frame)  #e:\Zxr Files\my project\11111\Downloads
            num += 1
            
        else:
            break
    cap.release()
    cv2.destroyAllWindows()

if __name__ == '__main__':
    h265_to_jpg()    # split_video()

设置h256编码的视频截取成图片视频路径: video_path’C:/Users/Zhangliangshan/Videos/Captures/2024-05-06_17-41-50.h265’
设置图片产生路径:cv2.imwrite(‘C:/Users/Zhangliangshan/Videos/Captures/%d.jpg’ % num, frame)
其中的 if num%4 == 0 :行的4可以更改,代表每隔4帧抽取一次。

5.视频抽帧效果

在这里插入图片描述
视频和图片放在同一个文件夹下,图片是每隔4帧抽取得到,序号比较乱,后期需要删除 不合适的照片,并利用python做排序,得到有效且有序的图片集。
有什么问题可以发表在评论区,欢迎一起学习、批评指正。

标签:视频,python,安装,cv2,抽帧,图片集,visualstudio,数据
From: https://blog.csdn.net/qq_37768954/article/details/139182468

相关文章

  • 【找出第 K 大的异或坐标值】python
    4层循环暴力超时 classSolution:defkthLargestValue(self,matrix:List[List[int]],k:int)->int:nums=[]forainrange(len(matrix)):forbinrange(len(matrix[0])):num=0foriinrange(......
  • Python OpenCV #1 - OpenCV介绍
    一、OpenCV介绍1.1OpenCV-Python教程简介OpenCV由GaryBradsky于1999年在英特尔创立,第一个版本于2000年发布。VadimPisarevsky加入了GaryBradsky,管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV被用于斯坦利,这辆车赢得了2005年DARPA大挑战赛。后来,在WillowGarage的支......
  • 【Python】函数详细介绍
    文章目录函数定义和调用参数类型返回值变量的作用域匿名函数(Lambda函数)递归函数函数定义和调用函数是组织好的、可重复使用的代码块,用来执行特定的任务。Python使用关键字def来定义函数。deffunction_name(parameters):"""docstring"""statement(s)......
  • Bayanay:一款基于Python开发的无线网络安全研究工具
    关于BayanayBayanay是一款基于纯Python开发的无线网络安全研究工具,在该工具的帮助下,无论你身处何地,都可以轻松地对周围地区的无线网络安全状况进行研究与分析。该工具可以通过使用HTML5的地理位置定位功能并结合Scapy获取到的SSID信息来对目标无线网络进行渗透测试与安全研......
  • Python限制输入的数范围
    在Python中,我们可以使用多种方法来限制用户输入的数值范围。1.使用while循环和try-except语句的方法以下是一个使用while循环和try-except语句的示例,该示例将要求用户输入一个在指定范围内的整数。假设我们要限制用户输入的数在1到100之间(包括1和100):defget_valid_input(min_v......
  • Python中Web开发-FastAPI框架
            大家好,在当今Web开发领域,高性能、易用性和可扩展性是开发者们追求的目标。Python作为一种流行的编程语言,在Web开发领域也有着强大的影响力。而在众多的PythonWeb框架中,FastAPI凭借其快速、现代和易用的特性,成为了开发者们的首选之一。本文将深入探讨FastAPI......
  • 设计模式 1 (Python版)
    设计模式解释:概念《设计模式:可复用面向对象软件的基础》面向对象的特性:封装,继承,多态接口:若干方法的集合限制实现接口的类必须按照接口给定的调用方式实现这些方法对高层模块隐藏了类的内部实现#接口实现的两种方法:#1.写一个父类,其他类必须继承这个方法,若子类不实现这......
  • 数据结构(python版)
    数据结构与算法python队列queue详见python3自定义比较器python比较器Pythonheapq自定义比较器#自定义比较器#1.对list等有key参数的##二维数组等的比较排序list1.sort(key=lambdax:x[1])##list中放置其他数据类型importfunctools#cmp的返回值为负数,第一个数......
  • 【python】python 全国5A级景区数据采集与pyecharts可视化(源码+数据+论文)【独一无二】
    ......
  • 蓝桥杯备赛——DP【python】
    一、小明的背包1试题链接:https://www.lanqiao.cn/problems/1174/learning/问题描述输入实例52016253851533输出示例37问题分析这里我们要创建一个DP表,DP(i,j)表示处理到第i个物品时消耗j体积。这样我们在输入数据时可以直接进行操作。对于每一个dp[i][j]我......