本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关。
本文章是自己学习的一些记录。
开始
在有些图像数据我们拿到手的时候,这些数据就略显模糊,直观上就让我们感到一丝的不舒服,所以对数据先做一个对比的增强。
需求
对于大多数的人来说,在对数据进行处理都是希望批量进行处理,本本篇博客就编写了一个脚本,对一个文件夹下面的多个子文件夹进行批量的增加对比度的处理。例如这样的结构:
脚本
本篇博客写的批量处理的脚本:
#coding=utf-8
#@Time:2021/2/6 11:52
#@Author:csdn@hijacklei
#@File:Batch contrast.py
#@Software:PyCharm
import os
import sys
from PIL import Image
from PIL import ImageEnhance
#定义待增强的批量文件夹路径
PATH = r''#自己定义,定义到父文件夹的路径即可
def enhanceImage(file, Noenhance):
# 读取文件夹
image = Image.open(file)
if image is None:
Noenhance += [str(file)]
else:
# 增加对比度
enh_con = ImageEnhance.Contrast(image)
contrast = 9.0
image_contrasted = enh_con.enhance(contrast)
#增强保存位置,这里我就直接写在原先的文件夹位置,直接覆盖
image_contrasted.save(file)
def enhanceAll(root):
# 待修改文件夹
fileList = os.listdir(root)
currentpath = os.getcwd()
os.chdir(root)
# 未被增强的图片,建立一个空的列表进行存储
Noenhance = []
# 遍历文件夹中所有文件
for file in fileList:
file = str(file)
enhanceImage(file, Noenhance)
print("********************************************")
# 改回程序运行前的工作目录
os.chdir(currentpath)
# 进行刷新
sys.stdin.flush()
print('没被增加对比度的图片: ', Noenhance)
if __name__ == "__main__":
for childPATH in os.listdir(PATH):
childPATH = PATH + '/' + str(childPATH)
enhanceAll(childPATH)
print('增加对比度全部完成!')
完成
根据脚本的测试,程序可用。