python对图片颜色校正_基于Python的图片批量颜色匹配,python,调色,处理

import os,stat

import urllib.request

import math

import json

from PIL import Image

from PIL import ImageEnhance

import PIL.ImageOps

import matplotlib.pyplot as plt

import numpy as np

def convertImage(sourcefile,savefilepath):

#读入图片

img = Image.open(sourcefile)

# 'D:/1.png')

image= img.convert('RGBA')

if image.mode == 'RGBA':

r,g,b,a = image.split()

rgb_image = Image.merge('RGB', (r,g,b))

#反色处理

inverted_image = PIL.ImageOps.invert(rgb_image)

r2,g2,b2 = inverted_image.split()

final_transparent_image = Image.merge('RGBA', (r2,g2,b2,a))

# ImageEnhanced1 = ImageEnhance.Brightness(final_transparent_image).enhance(1)#获得亮度加强器实例

ImageEnhanced2 = ImageEnhance.Brightness(final_transparent_image).enhance(1)

# ImageEnhanced3 = ImageEnhance.Brightness(final_transparent_image).enhance(3)

if not os.path.exists(savefilepath):

#创建路径

os.makedirs(savefilepath)

ImageEnhanced2.save(os.path.join(savefilepath,os.path.basename(sourcefile)))

print("success:" + os.path.join(savefilepath,os.path.basename(sourcefile)))

#imgall=[image,final_transparent_image,ImageEnhanced]

# plt.figure("")

# plt.figure(num=1, figsize=(8,5),)

# plt.title('The image title')

# plt.axis('off') # 不显示坐标轴

# plt.subplot(321),plt.imshow(image),plt.title("321"),plt.xticks([]),plt.yticks([])

# plt.subplot(322),plt.imshow(final_transparent_image),plt.title("321"),plt.xticks([]),plt.yticks([])

# plt.subplot(323),plt.imshow(ImageEnhanced1),plt.title("321"),plt.xticks([]),plt.yticks([])

# plt.subplot(324),plt.imshow(ImageEnhanced2),plt.title("321"),plt.xticks([]),plt.yticks([])

# plt.subplot(325),plt.imshow(ImageEnhanced3),plt.title("321"),plt.xticks([]),plt.yticks([])

# plt.subplot(221)

# plt.imshow(image,final_transparent_image,ImageEnhanced)

# plt.imshow(ImageEnhanced)

# plt.show()

else:

inverted_image = PIL.ImageOps.invert(image)

inverted_image.save('.png')

def batchInit():

file="D:/sl"

for root, dirs, files in os.walk(file):

# root 表示当前正在访问的文件夹路径

# dirs 表示该文件夹下的子目录名list

# files 表示该文件夹下的文件list

for d in dirs:

# print(os.path.join(root, d))

filepath2 = os.path.join(root, d)

for root2, dirs2, files2 in os.walk(filepath2):

for d2 in dirs2:

filepath3 = os.path.join(root2, d2)

for root3, dirs3, files3 in os.walk(filepath3):

for f in files3:

# print(os.path.join(root3, f))

savefilepath = os.path.join(root3.replace("sl","sl_blue"))

convertImage(os.path.join(root3, f),savefilepath)

print("处理完毕!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值