2020-09-16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

CNN+SVM的第一步,通过视频提取帧。


提示:以下是本篇文章正文内容,下面案例可供参考

一、前期准备?

方法一、测试题要求使用神经网络判断视频中人物的心情,在神经网络方面,Python具有较广的应用范围和较多的包,重新搭建测试环境,使用包管理工具Anaconda。随后为提取视频画面,用anaconda来下载opencv-python(cv2)的包,如果国外服务器较不稳定。可以用了清华源镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python。使用了Anaconda自带的jupyter作为编辑器。
方法二、使用matlab

二、使用步骤

1.使用Python

import cv2
import os

代码如下(示例):

# 遍历文件夹下所有文件
for file in os.listdir('./'):
#   若文件名以.mp4结尾
    if(file.endswith('.mp4')):
#       截取文件名中 begin:end-4 的内容作为文件夹,实际为截取.mp4前的内容
        dirname=file[:-4]
        print('获取视频截图:'+dirname)
#       若没有文件夹则创建
        if not os.path.exists(dirname):
            os.makedirs(dirname)
            
#       cv2读取file
        video = cv2.VideoCapture(file)
#       每秒fps*5秒
        fps = int(video.get(cv2.CAP_PROP_FPS)*5)
        if video.isOpened():
            rval, frame = video.read()
        else:
            rval = False
        number=1  
        while rval:
            rval, frame = video.read()
            if number%fps==0:
                print(number)
#               在对应文件名的目录下写图片
                cv2.imwrite(dirname+'/'+str(int(number / fps)) + '.jpg', frame)
            number += 1
#           下一帧
            cv2.waitKey(1)
#       关闭
        video.release()
    
print('图片截取完成')

2.使用MATLAB获取

代码如下(示例):

clc;
clear all;
close all;
%% 将视频逐帧保存为jpg图片
obj = VideoReader('F:\mh\rgb.avi');%输入视频位置
numFrames = obj.NumberOfFrames;% 帧的总数
numzeros= 4;%图片name长度
nz = strcat('%0',num2str(numzeros),'d');
 for k = 1 : numFrames% 读取前15帧
     frame = read(obj,k);%读取第几帧
     id=sprintf(nz,k);
     imwrite(frame,strcat('F:\mh\data\',id,'.jpg'),'jpg');% 保存帧
 end

总结

搬砖的第一步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值