python怎么让亮度不同的两张图片变成相同亮度
时间: 2024-01-24 08:43:59 浏览: 202
要使两张亮度不同的图片变成相同亮度,可以使用以下步骤:
1. 读取两张图片的像素值,并计算出它们的平均亮度值。
2. 分别计算两张图片的平均亮度值和目标平均亮度值之间的差异。
3. 根据差异值,对每个像素进行亮度调整。
4. 将调整后的图片保存。
下面是一个Python示例代码,可以实现将两张图片变成相同亮度:
```python
from PIL import Image
# 读取图片
img1 = Image.open("image1.png")
img2 = Image.open("image2.png")
# 计算两张图片的平均亮度值
avg_brightness1 = sum(sum(pixel) for pixel in img1.getdata()) / (img1.width * img1.height * 3)
avg_brightness2 = sum(sum(pixel) for pixel in img2.getdata()) / (img2.width * img2.height * 3)
# 计算差异值
delta_brightness = avg_brightness1 - avg_brightness2
# 对每个像素进行亮度调整
img1_pixels = img1.load()
img2_pixels = img2.load()
for i in range(img1.width):
for j in range(img1.height):
pixel1 = img1_pixels[i, j]
pixel2 = img2_pixels[i, j]
new_pixel1 = tuple(int(max(min(p + delta_brightness, 255), 0)) for p in pixel1)
new_pixel2 = tuple(int(max(min(p - delta_brightness, 255), 0)) for p in pixel2)
img1_pixels[i, j] = new_pixel1
img2_pixels[i, j] = new_pixel2
# 保存调整后的图片
img1.save("image1_adjusted.png")
img2.save("image2_adjusted.png")
```
在上述代码中,我们使用了Python的PIL库来读取和保存图片。首先,我们计算了两张图片的平均亮度值并计算出它们之间的差异。然后,我们对每个像素进行亮度调整,使得两张图片的平均亮度值相等。最后,我们将调整后的图片保存到本地文件中。
阅读全文