Matlab把对应文件夹下的多个avi格式的视频转化成每一帧的图片

  今天要对一个视频数据集进行处理,需要识别出一个视频每一帧图像中的人并且画框识别。最后人体识别的代码已经从网上找了,所以问题就是如何把数据集的所有视频转化为图片。

  首先先看一下如何把单个视频转为图片:

  mmreader函数可以读取视频地址,for语句循环每一帧图片并且转化为bmp格式。

  现在假如有一个很大的数据集,应该如何读文件夹并且进行处理呢,代码如下:

  具体的注释在代码中已经有说明,这里把思路再简要说明如下:

  假设在E盘放了一个文件夹名为hollywood的视频集,文件夹中有六个子文件夹,名字是动作名称类别等,例如run,walk,drive,kiss,bike,golf,在每个文件夹中是相应的视频,这个程序最外层的循环得到六个类别的文件夹名,然后得到每个二级文件夹中视频的名字以生成地址,再对每一个视频新建一个文件夹,分解开的每一帧图片放入相应的文件夹中,命名规则为1.bmp,2.bmp等,以此类推,最后进行相应的处理,例如机器学期或者人体识别等等,下面这部分的代码直接复制应该并不能使用,因为人物识别的代码我并没有贴,不过大家可以根据这个思路进行大多数数据集的处理.