数据增强——在图片中添加遮挡物

致歉

之前没有好好检查代码就把代码发上来了,导致博客上的代码无法运行,向大家道歉,现在已更新代码

为了增强网络的分类泛化能力,准备在图片中加入一些遮挡物。代码如下:
import random

import itertools

import os
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw

# 原始图片的存放位置
PATH = './source_path/'
# 新生成的图片的保存位置
SAVE_PATH= './save_path/'
# 要在图片上生成几边形的物体,N=5代表五边形
N = 5


def drawObs(path, savePath, n):

    for file in os.listdir(path):
        if not file.lower().endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')):
            continue
        img = Image.open(path + file)
        (x, y) = img.size
        random_list = list(itertools.product(range(1, x), range(1, y)))
        points = random.sample(random_list, n)

        x1 = random.randint(0, 255)
        x2 = random.randint(0, 255)
        x3 = random.randint(0, 255)

        draw = ImageDraw.Draw(img)

        ImageDraw.ImageDraw.polygon(xy=points, fill=(x1, x2, x3), self=draw)
        img.save(savePath + 'rand' + file)
        print(file)

if __name__ == '__main__':
    drawObs(PATH, SAVE_PATH, N)

随机在图片的某个位置加入五边形的遮挡物,颜色随机。效果如下:

处理前

在这里插入图片描述

处理后

在这里插入图片描述

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值