您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python+opencv实现视频抽帧示例代码

51自学网 2021-10-30 22:29:19
  python
这篇教程python+opencv实现视频抽帧示例代码写得很实用,希望能帮到您。

1、数据集简述:

       虽然有主流庞大的COCO、VOC数据集,但是科研人员仍需要特殊领域要求的数据集,所以采用人工实地采集的方式进行收集数据集图像;通过拍照收集图像过于繁琐,所以通常是将摄像头无规则的移动旋转以及远近拉缩,进而录制视频;再通过视频抽帧的方式得到大量的图像,再将这些图像进行人工标注处理。

        博主通过一个水下录制视频为例子,当这类图像在网上鲜有存在时,要求有关技术人员进行实拍采集,下图即为采集得到的视频。

微信截图_20210609094832

        为了避免不符合项目要求的数据增强,博主要求技术人员在录制视频时最大程度地让摄像头进行移动、旋转以及远近调节等;这样抽帧后的图像更具有泛化性

2、代码介绍:

下面是采用以帧数为间隔的方法进行视频抽帧,博主个人认为这样子的方式调节间隔更加方便,更符合个人习惯。

import cv2from PIL import Imageimport numpy as npcap = cv2.VideoCapture("D:/Download/ANMR0005.mp4")  # 获取视频对象isOpened = cap.isOpened  # 判断是否打开# 视频信息获取fps = cap.get(cv2.CAP_PROP_FPS)imageNum = 0sum=0timef=15  #隔15帧保存一张图片while (isOpened):    sum+=1    (frameState, frame) = cap.read()  # 记录每帧及获取状态    if frameState == True and (sum % timef==0):        # 格式转变,BGRtoRGB        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)        # 转变成Image        frame = Image.fromarray(np.uint8(frame))        frame = np.array(frame)        # RGBtoBGR满足opencv显示格式        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)        imageNum = imageNum + 1        fileName = 'D:/Download/video_image/image' + str(imageNum) + '.jpg'  # 存储路径        cv2.imwrite(fileName, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])        print(fileName + " successfully write in")  # 输出存储状态    elif frameState == False:        breakprint('finish!')cap.release()

3、代码效果:

pycharm运行py文件后结果框显示的内容:

微信截图_20210609094832

视频抽帧得到的图像保存至指定的文件夹:

微信截图_20210609094832

抽帧得到的图片示例:

微信截图_20210609094832 

4、相关说明: ①本代码依据录制视频、对opencv的理解以及大佬的项目代码灵感进行编写;

大佬的项目代码地址

②本数据集属于私人闭源,不公开。

到此这篇关于python+opencv实现视频抽帧的文章就介绍到这了,更多相关python opencv视频抽帧内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


用Python将GIF动图分解成多张静态图片
用Python创建简易网站图文教程
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。