批量将图片统一色调

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
将多张图批量按某种色调调色,使其作为背景图

from PIL import Image, ImageEnhance  # 确保导入 ImageEnhance 模块
import os


def adjust_image_tone(image_path, output_path, r_weight=1.0, g_weight=1.0, b_weight=1.0, brightness=1.0):
    """
    调整图片的色调、明暗,并进行去图处理。

    参数:
        image_path (str): 输入图片的路径。
        output_path (str): 输出图片的路径。
        r_weight (float): 红色通道的权重。
        g_weight (float): 绿色通道的权重。
        b_weight (float): 蓝色通道的权重。
        brightness (float): 亮度调整值(1.0 表示原始亮度,小于 1.0 变暗,大于 1.0 变亮)。
    """
    # 打开图片并转换为灰度图像(去图处理)
    img = Image.open(image_path).convert('L').convert('RGB')

    # 分离RGB通道
    r, g, b = img.split()

    # 调整每个通道的权重
    new_r = r.point(lambda i: i * r_weight)
    new_g = g.point(lambda i: i * g_weight)
    new_b = b.point(lambda i: i * b_weight)

    # 合并调整后的通道
    adjusted_img = Image.merge('RGB', (new_r, new_g, new_b))

    # 调整亮度
    adjusted_img = ImageEnhance.Brightness(adjusted_img).enhance(brightness)

    # 保存调整后的图片
    adjusted_img.save(output_path)
    print(f"已处理图片: {output_path}")


def batch_process_images(input_folder, output_folder, r_weight=1.0, g_weight=1.0, b_weight=1.0, brightness=1.0):
    """
    批量处理文件夹中的图片,调整色调、明暗,并进行去图处理。

    参数:
        input_folder (str): 输入图片文件夹路径。
        output_folder (str): 输出图片文件夹路径。
        r_weight (float): 红色通道的权重。
        g_weight (float): 绿色通道的权重。
        b_weight (float): 蓝色通道的权重。
        brightness (float): 亮度调整值。
    """
    # 确保输出文件夹存在
    os.makedirs(output_folder, exist_ok=True)

    # 遍历输入文件夹中的所有图片
    for filename in os.listdir(input_folder):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename)

            # 调整图片色调和明暗
            adjust_image_tone(input_path, output_path, r_weight, g_weight, b_weight, brightness)


# 示例用法
if __name__ == "__main__":
    input_folder = "input_images"  # 输入文件夹
    output_folder = "output_images"  # 输出文件夹

    # 自定义RGB权重和亮度
    r_weight = 1.0 # 红色通道权重
    g_weight = 0.5  # 绿色通道权重
    b_weight = 0.5  # 蓝色通道权重
    brightness = 0.3  # 亮度调整值(1.0 表示原始亮度)

    batch_process_images(input_folder, output_folder, r_weight, g_weight, b_weight, brightness)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值