数据增强(扩充)适合初学者
admin
2024-02-26 13:15:39
0

下面的代码可以实现13种数据增强,出自 PIL库的 Image和 ImageEnhance,后续如果想增加扩充倍数,可直接添加。

目录

1.ImageEnhance库:

2.Image库:

二、注意的问题:

三、代码展示:


一、相关的库主要包括:

1.ImageEnhance库:

ImageEnhance.enhance(factor) 对选择属性的数值增强factor倍 
ImageEnhance.Color(im) 调整图像的颜色平衡 
ImageEnhance.Contrast(im) 调整图像的对比度 
ImageEnhance.Brightness(im) 调整图像的亮度 
ImageEnhance.Sharpness(im) 调整图像的锐度 

2.Image库:

image.rotate()方法进行旋转

image.transpose()方法进行翻转

二、注意的问题:

将图片的原来文件夹和增强后的文件夹填写正确。

三、代码展示:


###
#本代码共采用了13种数据增强,如采用其他数据增强方式,可以参考本代码,随意替换。
#imageDir 为原数据集的存放位置
#saveDir  为数据增强后数据的存放位置
###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.jpg'))return filp_imgdef rotation(root_path, img_name):img = Image.open(os.path.join(root_path, img_name))rotation_img = img.rotate(20) #旋转角度20# rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.jpg'))return rotation_imgdef rotation2(root_path, img_name):img = Image.open(os.path.join(root_path, img_name))rotation_img = img.rotate(10) #旋转角度10# rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.jpg'))return rotation_imgdef rotation3(root_path, img_name):img = Image.open(os.path.join(root_path, img_name))rotation_img = img.rotate(90) #旋转角度90# rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.jpg'))return rotation_imgdef rotation4(root_path, img_name):img = Image.open(os.path.join(root_path, img_name))rotation_img = img.rotate(180) #旋转角度180# rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.jpg'))return rotation_imgdef rotation5(root_path, img_name):img = Image.open(os.path.join(root_path, img_name))rotation_img = img.rotate(45) #旋转角度45# rotation_img.save(os.path.join(root_path,img_name.split('.')[0] + '_rotation.jpg'))return rotation_imgdef randomColor(root_path, img_name): #随机颜色"""对图像进行颜色抖动:param image: PIL的图像image:return: 有颜色色差的图像image"""image = Image.open(os.path.join(root_path, img_name))random_factor = np.random.randint(0, 31) / 10.  # 随机因子color_image = ImageEnhance.Color(image).enhance(random_factor)  # 调整图像的饱和度random_factor = np.random.randint(10, 21) / 10.  # 随机因子brightness_image = ImageEnhance.Brightness(color_image).enhance(random_factor)  # 调整图像的亮度random_factor = np.random.randint(10, 21) / 10.  # 随机因子contrast_image = ImageEnhance.Contrast(brightness_image).enhance(random_factor)  # 调整图像对比度random_factor = np.random.randint(0, 31) / 10.  # 随机因子return ImageEnhance.Sharpness(contrast_image).enhance(random_factor)  # 调整图像锐度def contrastEnhancement(root_path, img_name):  # 对比度增强image = Image.open(os.path.join(root_path, img_name))enh_con = ImageEnhance.Contrast(image)contrast = 1.5image_contrasted = enh_con.enhance(contrast)return image_contrasteddef contrastEnhancement2(root_path, img_name):  # 对比度增强2image = Image.open(os.path.join(root_path, img_name))enh_con = ImageEnhance.Contrast(image)contrast = 1.75image_contrasted = enh_con.enhance(contrast)return image_contrasteddef brightnessEnhancement(root_path,img_name):#亮度增强image = Image.open(os.path.join(root_path, img_name))enh_bri = ImageEnhance.Brightness(image)brightness = 1.5image_brightened = enh_bri.enhance(brightness)return image_brighteneddef colorEnhancement(root_path,img_name):#颜色增强image = Image.open(os.path.join(root_path, img_name))enh_col = ImageEnhance.Color(image)color = 1.5image_colored = enh_col.enhance(color)return image_coloreddef colorEnhancement2(root_path,img_name):#颜色增强->黑白图image = Image.open(os.path.join(root_path, img_name))enh_col = ImageEnhance.Color(image)color = 2image_colored = enh_col.enhance(color)return image_colored#锐度增强
def colorSharpness(root_path,img_name):image = Image.open(os.path.join(root_path, img_name))enh_col = ImageEnhance.Sharpness(image)sharpness = 3.0image_colored = enh_col.enhance(sharpness)return image_coloredfrom PIL import Image
from PIL import ImageEnhance
import os
import cv2
import numpy as np#D:\images_background\22 (2)
imageDir="D:/学习/人工智能/孪生网络/数据集/原数据集 - 轮胎痕迹/trace.6L"     #要改变的图片的路径文件夹
saveDir="D:/学习/人工智能/孪生网络/数据集/原数据集 - 轮胎痕迹/trace.6L"   #要保存的图片的路径文件夹
#D:\trace_images01\.6LD:\学习\人工智能\孪生网络\数据集\原数据集 - 轮胎花纹\t (2)
for name in os.listdir(imageDir):saveName= name[:-4]+"bright.jpg"saveImage=brightnessEnhancement(imageDir,name)#2.亮度增强saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"flip.jpg"saveImage=flip(imageDir,name)#3.翻转图像saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"rotation.jpg"saveImage=rotation(imageDir,name)#4.旋转角度20度saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"randmcolor.jpg"saveImage=randomColor(imageDir,name)#5.随机颜色saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"color.jpg"saveImage=colorEnhancement(imageDir,name)#6.颜色增强saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"contrast.jpg"saveImage=contrastEnhancement(imageDir,name) #7.对比度增强saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"rotation3.jpg"saveImage=rotation3(imageDir,name)#8.旋转角度30度saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"rotation4.jpg"saveImage=rotation4(imageDir,name)#9.旋转角度45度saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"contrast2.jpg"saveImage=contrastEnhancement2(imageDir,name) #10.对比度增强saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"colorEnhancement2.jpg"saveImage=colorEnhancement2(imageDir,name) #11.黑白图saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"colorSharpness.jpg"saveImage=colorSharpness(imageDir,name) #12.增强因子为2.0表示锐化图像。值越大图像边界越多越清晰。saveImage.save(os.path.join(saveDir,saveName))saveName= name[:-4]+"rotate5.jpg"saveImage=rotation5(imageDir,name) #13.对比度增强saveImage.save(os.path.join(saveDir,saveName))

相关内容

热门资讯

吐槽安卓操作系统,揭秘那些让人... 说起安卓操作系统,这可是个让人又爱又恨的家伙。咱们就来聊聊这个话题,看看它都有哪些让人忍不住吐槽的点...
怎么把安卓系统改为苹果,系统转... 你有没有想过,把你的安卓手机换成苹果手机,体验一下那个传说中的流畅和优雅呢?没错,我就是来告诉你,怎...
安卓系统如何用热点,随时随地共... 你有没有想过,你的安卓手机竟然能变身成为一个移动的Wi-Fi热点?没错,就是那个随时随地都能连接网络...
安卓系统自动开抖音,安卓系统自... 你有没有发现,最近你的安卓手机突然变得有点儿“调皮”呢?没错,就是那个我们每天都要刷的抖音,竟然自己...
安卓系统降级会更快吗,降级过程... 你有没有想过,你的安卓手机升级后,有时候操作起来反而不如以前流畅呢?别急,今天就来聊聊这个话题——安...
安卓系统设备扫码在哪,安卓设备... 你有没有遇到过这种情况:手机里装了各种APP,但是有时候想扫码付款或者加入某个群组,却怎么也找不到扫...
创维电视安卓系统卡顿,创维电视... 最近家里的创维电视有点不给力啊,你有没有遇到过安卓系统卡顿的烦恼?这可真是让人头疼不已。今天,就让我...
安卓系统摄像功能,捕捉生活精彩... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?尤其是安卓系统的摄像功能,简直让人爱...
安卓的系统安全管理,全方位守护... 你知道吗?在这个信息爆炸的时代,手机已经成了我们生活中不可或缺的好伙伴。但是,随着手机功能的日益强大...
安卓TV9系统,系统革新与智能... 你有没有发现,最近你的安卓电视系统更新了?没错,就是那个安卓TV9系统!这可不是一个小小的更新,而是...
hi8pro安卓系统,功能解析... 亲爱的数码爱好者们,你是否对安卓系统有着浓厚的兴趣?今天,我要给你带来一款特别引人注目的产品——hi...
在win8系统模拟安卓系统,跨... 你有没有想过,在Windows 8系统上也能模拟出安卓系统的风采呢?没错,这就是今天我要跟你分享的神...
cmd窗口进QNX系统和安卓系... 你有没有想过,在电脑上打开一个神秘的cmd窗口,竟然能进入两个截然不同的世界——QNX系统和安卓系统...
苹果12怎么装安卓系统,轻松安... 你手上的苹果12是不是已经用腻了?想要换换口味,试试安卓系统?别急,今天就来手把手教你如何给苹果12...
安卓系统极米同屏,安卓系统下的... 亲爱的读者们,你是否曾在深夜里,看着手机屏幕,却渴望能有一个更大的屏幕来享受你的电影之夜?或者,你是...
可以刷安卓8.0系统吗,探索新... 你有没有想过,你的安卓手机能不能升级到最新的安卓8.0系统呢?这可是个让人兴奋的话题,毕竟谁不想让自...
乐视改安卓系统版本,系统版本升... 亲爱的读者们,你是否还记得那个曾经红极一时的乐视电视?没错,就是那个曾经承诺要改变我们观看电视方式的...
安卓原生系统壁纸软件,软件功能... 亲爱的手机控们,你是否厌倦了手机上千篇一律的壁纸?想要给安卓手机换上一副新鲜出炉的原生系统壁纸?那就...
安卓手机刷了垃圾系统,深度解析... 亲爱的手机控们,你们有没有遇到过这种情况:安卓手机刷了垃圾系统,瞬间感觉手机变慢了,各种广告弹窗不断...
系统可以人为设置吗安卓,安卓系... 你有没有想过,你的安卓手机里的系统是不是可以按照你的喜好来定制呢?没错,就是那种可以人为设置的系统,...