Use python to generate watermark data sets in batches

 The simpler method used here is to use text directly as a watermark

code show as below:

import os
from PIL import Image, ImageDraw, ImageFont
import numpy as np 



os.makedirs('dataset\\watermarks\\train',exist_ok=True)
os.makedirs('dataset\\watermarks\\test',exist_ok=True)

locsi=np.random.randint(0,6,100000).tolist()#文本index
locsx=np.random.randint(10,200,100000).tolist()#随机产生x位置
locsy=np.random.randint(10,300,100000).tolist()#随机产生y位置

index=0
ls_train=os.listdir('dataset\\images\\train')
ls_test=os.listdir('dataset\\images\\test')
ls_train.sort()
ls_test.sort()
ls=['weibo','tencent','google','facebook','alibaba','twitter']#随机挑选一个内容作为水印
font = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 40)#加载系统字体

#train
for i  in ls_train:
    image = Image.open('dataset\\images\\train\\'+i)
    draw = ImageDraw.Draw(image)
    draw.text((locsx[index], locsy[index]),ls[locsi[index]],\
              fill=(190, 190, 190), font=font)
    index+=1
    print(i)
    image.save("dataset\\watermarks\\train\\"+i)
#test
for i  in ls_test:
    imageInfo = Image.open('dataset\\images\\test\\'+i)
    draw = ImageDraw.Draw(imageInfo)
    draw.text((locsx[index], locsy[index]),ls[locsi[index]],\
              fill=(190, 190, 190), font=font)
    index+=1
    print(i)
    imageInfo.save("dataset\\watermarks\\test\\"+i)    
#imageInfo.show()

 

Guess you like

Origin blog.csdn.net/zhou_438/article/details/113563621