• 样本扩增


    改变亮度、对比第、角度、镜像

    from PIL import ImageEnhance
    import os
    import numpy as np
    from PIL import Image
    
    def brightnessEnhancement(root_path,img_name):#亮度增强
        image = Image.open(os.path.join(root_path, img_name))
        enh_bri = ImageEnhance.Brightness(image)
        # brightness = 1.1+0.4*np.random.random()#取值范围1.1-1.5
        brightness = 1.5
        image_brightened = enh_bri.enhance(brightness)
        return image_brightened
    
    
    def contrastEnhancement(root_path, img_name):  # 对比度增强
        image = Image.open(os.path.join(root_path, img_name))
        enh_con = ImageEnhance.Contrast(image)
        # contrast = 1.1+0.4*np.random.random()#取值范围1.1-1.5
        contrast = 1.5
        image_contrasted = enh_con.enhance(contrast)
        return image_contrasted
    
    def rotation(root_path, img_name):
        img = Image.open(os.path.join(root_path, img_name))
        random_angle = np.random.randint(-2, 2)*90
        if random_angle==0:
            rotation_img = img.rotate(-90) #旋转角度
        else:
            rotation_img = img.rotate( random_angle)  # 旋转角度
        # rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.bmp'))
        return rotation_img
    
    def flip(root_path,img_name):   #翻转图像
        img = Image.open(os.path.join(root_path, img_name))
        filp_img = img.transpose(Image.FLIP_LEFT_RIGHT)     #左右翻转
        # filp_img.save(os.path.join(root_path,img_name.split('.')[0] + '_flip.bmp'))
        return filp_img
    
    
    def createImage(imageDir,saveDir):
       i=0
       for name in os.listdir(imageDir):
          i=i+1
          saveName="cesun"+str(i)+".bmp"
          saveImage=contrastEnhancement(imageDir,name)
          saveImage.save(os.path.join(saveDir,saveName))
          saveName1 = "flip" + str(i) + ".bmp"
          saveImage1 = flip(imageDir,name)
          saveImage1.save(os.path.join(saveDir, saveName1))
          saveName2 = "brightnessE" + str(i) + ".bmp"
          saveImage2 = brightnessEnhancement(imageDir, name)
          saveImage2.save(os.path.join(saveDir, saveName2))
          saveName3 = "rotate" + str(i) + ".bmp"
          saveImage = rotation(imageDir, name)
          saveImage.save(os.path.join(saveDir, saveName3))
    
    if __name__ == '__main__':
    
        # 设置图片路径
        filepath = 'C:/Users/Administrator/Desktop/images'
    
        # 设置扩充保存图片路径
        savefilepath = 'C:/Users/Administrator/Desktop/imagesExp'
        createImage(filepath,savefilepath)
  • 相关阅读:
    【剑指Offer】6、旋转数组的最小数字
    【剑指Offer】5、用两个栈实现队列
    【剑指Offer】4、重建二叉树
    python面试经典315
    shell面试经典70例
    vim编辑器使用
    bootstrap3基本了解
    Windows Server 2008允许多用户登录远程桌面
    配置远程桌面
    Python-Python及PyCharm的下载与安装
  • 原文地址:https://www.cnblogs.com/xixixing/p/15846852.html
Copyright © 2020-2023  润新知