如何在Python中将亮度从一个图像应用到另一个图像
我正在尝试使用一个有3种颜色的图像和一个灰度图像来制作纹理 这是原始图像: 这是灰度柏林噪声图像: 我需要做的是将原始图像的亮度应用于灰度图像,这样柏林噪波图像中最暗和最亮的亮度不再是100%黑色(0)和100%白色(1),而是取自原始图像。然后,将灰度柏林噪声图像的新亮度映射应用回原始图像 这就是我所尝试的:如何在Python中将亮度从一个图像应用到另一个图像,python,numpy,colors,python-imaging-library,cv2,Python,Numpy,Colors,Python Imaging Library,Cv2,我正在尝试使用一个有3种颜色的图像和一个灰度图像来制作纹理 这是原始图像: 这是灰度柏林噪声图像: 我需要做的是将原始图像的亮度应用于灰度图像,这样柏林噪波图像中最暗和最亮的亮度不再是100%黑色(0)和100%白色(1),而是取自原始图像。然后,将灰度柏林噪声图像的新亮度映射应用回原始图像 这就是我所尝试的: from PIL import Image alpha = 0.5 im = Image.open(filename1).convert("RGBA") new_img = Ima
from PIL import Image
alpha = 0.5
im = Image.open(filename1).convert("RGBA")
new_img = Image.open(filename2).convert("RGBA")
new_img = Image.blend(im, new_img, alpha)
new_img.save("foo.png","PNG")
这是我得到的输出:
这是错误的,但想象一下暗橙色和浅橙色以及明亮的颜色与灰度图像具有相同的梯度,但没有100%的黑色或100%的白色
我认为我需要:
HSV
(正确地说,我尝试了colorsys
和matplotlib
中的一些函数,它们给了我奇怪的数字V
值HSV
图像中的V
值对灰度HSV
进行变换或规范化(我想这就是它的名称)V
值与新的变换/标准化灰度V
值重新映射我不太懂Python,但也许可以尝试将int转换为float或double。也许可以也许你想编辑你的问题,使其更清楚预期的结果是什么。此外,清晰的问题描述可能会有所帮助,在多大程度上建议的步骤没有给你期望的结果。另外,让这对其他人来说是可复制的嗯,看。