数据集一万多张图从视频里来,连续图片相度过高,采用固定间隔选取,提炼出更适合用于目标检测的数据集(之后可以再加上其他场景下的图像对数据集进行扩充)
代码如下:
import os
from shutil import copy
path="D:/Research direction/data set/DL data/VOCdevkit 完整版/VOC2007/Annotations"
out="D:/Research direction/data set/DL data/VOCdevkit 提取版/VOC2007/Annotations"
#获取文件列表
allfilelist=os.listdir(path) #获取子文件夹名
allfilelist.sort(key=lambda x: int(x[4:])) #第四个字符以后的字符串转化为数字并进行排序
#print(allfilelist)
#print(len(allfilelist))
index = 1
for file in allfilelist:
filepath = os.path.join(path, file)
img_names = os.listdir(filepath) #获取子文件夹中的文件名
img_names.sort(key=lambda x: int(x[:-4])) #倒数第五个字符以前的字符串转化为数字并进行排序
#print(img_names)
# 打印文件夹下的数量
#print(len(img_names))
#从第一个开始,每隔五个取一个
img_names=img_names[0::5]
#print(img_names)
# 循环读取文件,批操作文件名重命名
for item in img_names:
if item.endswith('.xml'): # 文件格式
src_path = os.path.join(os.path.abspath(filepath), item)
dst_path = os.path.join(os.path.abspath(out), '' + str(index) + '.bmp')
copy(src_path, dst_path)
index = index + 1
|