描述
最近需要做点实验,用的是VQA-ODV数据集(目前最大的全景视频数据集),该数据及中有540个受损视频和参考视频以及标签,但是博主只需要用到受损视频(因为想做无参考视频质量评价),所以想办法把视频的每一帧都提取出来放在命名为0-540的文件夹中,文件夹中的帧数也是按数字排列的。最后,在python中把他们放入一个大列表,比如list(17)(1)就表示“17”文件夹下(也就是第17个视频)的第“1”帧。
前言
博主的水平很一般,刚学python,写的代码就像老奶奶的裹脚布(又臭又长),写这篇博客纯属想祭奠一下这个星期为智慧而流淌的头发。
过程
1.解压数据集
下载解压什么的就不详说了,下载解压完原始数据集后,把受损视频全部复制粘贴到一个新的文件夹下。我的视频路径是C:/Users/LIGHT/Desktop/dataset/VQA-ODV-master。
2.视频重命名
视频重命名主要用到os.rename的函数,结合for循环遍历文件。然后创建0-539文件夹,方便后续将视频帧放入对应的视频文件夹,代码如下:
# 对视频文件重命名0-539
def rename():
count = 0
file_list = os.listdir(videopath) # 该目录下所有文件
for file in file_list: # 遍历所有文件
olddir = os.path.join(videopath,file) # 原来文件路径
filename = os.path.splitext(file)[0] # 文件名
filetype = os.path.splitext(file)[1] # 文件拓展名
newdir = os.path.join(videopath, str(count)+filetype)
os.rename(olddir, newdir)
count +=1
# 创建0-539文件夹
base = 'C:/Users/LIGHT/Desktop/demo/360VQA/data/'#0-539文件夹的目录
i = 0
for i in range(540):
file_name = base+str(i)
os.mkdir(file_name)
i = i+1
3.提取视频帧并放入相应的文件夹
在这里,需要将每个视频的路径和每个视频文件夹(0-539)的路径放在两个列表中,这样才能用一个变量遍历这些文件和文件夹, 代码如下:
def getfile():
file_list = []
for root