制作数据集时需要对图片进行标注,但是有时候图片没有目标,因此最后我们需要把标记过的数据从之前众多图片中抽取出来
(注意图片名,名字不同需要自行更改)
#将图片根据xml中的文件名挑选出来
from PIL import Image
from PIL import ImageEnhance
import os
import cv2
import numpy as np
def convert(input_dir1, input_dir2,output_dir):
for filename in os.listdir(input_dir1):
for filename1 in os.listdir(input_dir2):
path = input_dir1 + "/" + filename#图片路径
path1=input_dir2+'/'+filename1#xml路径
#print("doing... ", path)
#print("doing... ", path1)
if path1[-10:-4]==path[-10:-4]:#只有图片代号和xml代号相等的时候才会保存
print(path[-10:-4])
image = Image.open(path)
image.save(output_dir + "/" + filename[:-4] + ".bmp")
if __name__ == '__main__':
input_dir1 = "E:/pythonpycharm/yuan_Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/JPEGImages_yuan_bmp"#输入图片路径
input_dir2= "E:/pythonpycharm/yuan_Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/Annotations"#输入标注路径
output_dir = "E:/pythonpycharm/yuan_Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/xin"#保存路径
convert(input_dir1,input_dir2,output_dir)