为什么我新 python 编辑的照片失去了亮度?
Why did my new python edited photo lose brightness?
我正在做一个照片编辑项目,我很好奇为什么我的新照片会失去亮度。该程序应该从原始照片中取出 2 张照片。其中一个应该只包含红色值,另一个应该包含蓝色和绿色值。但是当我把它们放回去的时候,亮度和原图不一样。
这是我的代码:
import io, re, requests
from PIL import Image, ImageOps, ImageEnhance, ImageChops
import cv2
import numpy as np
imgpth ='image.jpg'
#red image
img2 = Image.open(imgpth).convert('RGB')
source = img2.split()
R, G, B = 0, 1, 2
out = source[G].point(lambda i: i * 0)
source[G].paste(out, None, None)
out = source[B].point(lambda i: i * 0)
source[B].paste(out, None, None)
img2 = Image.merge(img2.mode, source)
#green and blue image
img = Image.open(imgpth).convert('RGB')
source = img.split()
R, G, B = 0, 1, 2
out = source[R].point(lambda i: i * 0)
source[R].paste(out, None, None)
img = Image.merge(img.mode, source)
blend2 = Image.blend(img, img2, 0.5)
blend2.show()
原图:this is the origianl image
输出图像:enter image description here
blend2 = Image.blend(img, img2, 0.5)
第三个参数,0.5,是每一层的alpha水平。本质上,您将每个图层设置为 50% 透明。这有效地降低了亮度。相反,您应该读入 img1
和 img2
,然后将第二个的红色层设置为第一个的红色层。
img2[R] = img1[R]
我正在做一个照片编辑项目,我很好奇为什么我的新照片会失去亮度。该程序应该从原始照片中取出 2 张照片。其中一个应该只包含红色值,另一个应该包含蓝色和绿色值。但是当我把它们放回去的时候,亮度和原图不一样。
这是我的代码:
import io, re, requests
from PIL import Image, ImageOps, ImageEnhance, ImageChops
import cv2
import numpy as np
imgpth ='image.jpg'
#red image
img2 = Image.open(imgpth).convert('RGB')
source = img2.split()
R, G, B = 0, 1, 2
out = source[G].point(lambda i: i * 0)
source[G].paste(out, None, None)
out = source[B].point(lambda i: i * 0)
source[B].paste(out, None, None)
img2 = Image.merge(img2.mode, source)
#green and blue image
img = Image.open(imgpth).convert('RGB')
source = img.split()
R, G, B = 0, 1, 2
out = source[R].point(lambda i: i * 0)
source[R].paste(out, None, None)
img = Image.merge(img.mode, source)
blend2 = Image.blend(img, img2, 0.5)
blend2.show()
原图:this is the origianl image
输出图像:enter image description here
blend2 = Image.blend(img, img2, 0.5)
第三个参数,0.5,是每一层的alpha水平。本质上,您将每个图层设置为 50% 透明。这有效地降低了亮度。相反,您应该读入 img1
和 img2
,然后将第二个的红色层设置为第一个的红色层。
img2[R] = img1[R]