前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >京东猪脸识别比赛数据预处理:用Python将视频每一帧提取存储为图片

京东猪脸识别比赛数据预处理:用Python将视频每一帧提取存储为图片

作者头像
全栈程序员站长
发布2022-06-24 20:13:54
1.1K0
发布2022-06-24 20:13:54
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

最近参加京东的猪脸识别比赛,训练集是30个视频,需要将视频的每一帧提取出来存储为图片,存入对应的文件夹(分类标签)。
本例是直接调用了cv2 模块中的 VideoCapture。一次运行,大概10分钟,就能得到预处理后的分类图片了,具体代码如下。

视频每一帧提取存储为图片代码

代码语言:javascript
复制
#! encoding: UTF-8

import os

import cv2
import cv

videos_src_path='/sata_disk/E_office/zhouhongli/pig/train'
images_save_path='/sata_disk/E_office/zhouhongli/pig/frame'

videos = os.listdir(videos_src_path)
videos = filter(lambda x: x.endswith('mp4'), videos)

for each_video in videos:
    print each_video

    # get the name of each video, and make the directory to save frames
    each_video_name,_=each_video.split('.')
    os.mkdir(images_save_path +'/'+ each_video_name)

    each_video_save_full_path=os.path.join(images_save_path, each_video_name) + '/'

    # get the full path of each video, which will open the video tp extract frames
    each_video_full_path=os.path.join(videos_src_path, each_video)

    cap=cv2.VideoCapture(each_video_full_path)
    frame_count = 1
    success = True
    while(success):
        success, frame=cap.read()
        print 'Read a new frame: ', success

        params = []
        params.append(cv.CV_IMWRITE_PXM_BINARY)
        params.append(1)
        cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_count, frame, params)

        frame_count = frame_count+1

cap.release()

递归删除文件的问题

但有个问题,每一个视频转换得到的30个子文件夹里,都有2952张图片,但第2952张是空的,所以只有运用强大的Linux递归删除符合条件的文件了,我是这样删除滴。

代码语言:javascript
复制
zhouhongli@1080TI:~$ find  . -name '*_2952.jpg' -size 0 -print0 |xargs -0 rm

参考

python tools:将视频的每一帧提取并保存 http://blog.csdn.net/u010167269/article/details/53268686 Linux find 与 rm 联动删除符合条件的文件 https://maoxian.de/2015/12/1362.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151885.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最近参加京东的猪脸识别比赛,训练集是30个视频,需要将视频的每一帧提取出来存储为图片,存入对应的文件夹(分类标签)。
  • 本例是直接调用了cv2 模块中的 VideoCapture。一次运行,大概10分钟,就能得到预处理后的分类图片了,具体代码如下。
  • 视频每一帧提取存储为图片代码
  • 递归删除文件的问题
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档