项目数据不够的时候,往往需要进行数据扩增,此文介绍一种简单的扩增方式,用于线下数据增强。
首先贴上代码
#此脚本用于填充图片,使得图片变成1280*1280大小
import os
import numpy as np
from PIL import Image
from xml.etree.ElementTree import parse, Element
JPEGfilepath = 'JPEGImages'
input_dir = 'JPEGImages/'
out_dir = 'NewJPEGImages/'
a = os.listdir(input_dir)
Annotation_out_dir = 'NewAnnotations/'
b = os.listdir('Annotations/')
for i in a:
print(i)
#读取图片的宽高
image = Image.open(input_dir + i)
Width = image.size[0]
Height = image.size[1]
#设置pad顶部的高
top = np.random.randint(0, 256)
#设置pad底部的高
bottom = 256 - top
print(top,bottom)
#设置顶部pad的颜色与需要叠加的顶部图片
RandColor = (np.random.randint(0,256) , np.random.randint(0,256),np.random.randint(0,256))
topIm = Image.new('RGB', (1280, top), RandColor)
# 设置底部pad的颜色与需要叠加的底部图片
RandColor_2= (np.random.randint(0, 256), np.random.randint(0, 256), np.random.randint(0, 256))
bottomIm = Image.new('RGB', (1280, bottom),RandColor_2)
#目标图片的大小