请用python写一段颜色平衡的代码
时间: 2024-10-21 15:01:49 浏览: 11
颜色平衡是一种图像处理技术,它通过调整图像中的红色、绿色和蓝色通道的亮度来校正图片的整体色调。这里有一段简单的Python代码,使用PIL库(Pillow)来进行基本的颜色平衡:
```python
from PIL import Image
def color_balance(image_path):
# 打开图片文件
img = Image.open(image_path)
# 获取原始RGB像素值数据
pixels = img.getdata()
# 计算每个通道的平均值
r_avg, g_avg, b_avg = sum([p[0] for p in pixels]) / len(pixels), \
sum([p[1] for p in pixels]) / len(pixels), \
sum([p[2] for p in pixels]) / len(pixels)
# 设置新的色彩平衡系数(这里假设+50会使整体偏暖,-50会使整体偏冷)
new_r, new_g, new_b = [max(0, min(255, p + 50)) for p in (r_avg, g_avg, b_avg)]
correction_factors = (new_r - r_avg, new_g - g_avg, new_b - b_avg)
# 应用色彩平衡
for i, pixel in enumerate(pixels):
pixels[i] = tuple(max(0, min(255, p + factor)) for p, factor in zip(pixel, correction_factors))
# 更新并保存图片
new_img = Image.new('RGB', img.size, (0, 0, 0))
new_img.putdata(pixels)
new_img.save("balanced_" + image_path)
# 使用函数
color_balance("input_image.jpg")
```
这段代码首先打开图片,然后获取每个像素的R、G、B分量,计算平均值并确定调整幅度。接着遍历每一个像素,根据调整因素改变其色彩。最后保存处理后的图片。
阅读全文