使用Python将两个图像叠加在一起

时间:2019-06-06 01:42:58

标签: python python-3.x

我正在尝试将两个图像叠加在一起,以模仿使用MatLab叠加的图像的结果。不幸的是,我无法在该项目中使用MatLab,而且我使用混合的方法也无法获得理想的结果。

enter image description here

是否有关于仅使用Python来完成图像叠加的想法?

这是我尝试使用混合方法的代码部分。但是,它会产生发光效果:

# Blend method from 
# http://www.deepskycolors.com/archive/2010/04/21/formulas-for-Photoshop-blending-modes.html

target = img_1 / 255.0
blend = img_2 / 255.0

output_img = (target > 0.5) * (1 - (1-2*(target-0.5)) * (1-blend)) + (target <= 0.5) * ((2*target) * blend)
output_img = output_img*255.0

这是我开始使用的两张图片:

enter image description here enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用枕头来做到这一点:

from PIL import Image
im1 = Image.open("background.jpg")
im2 = Image.open("bird.jpg")

newimg = Image.blend(im1, im2, alpha=0.5)
newimg.save("blended.jpg")

我得到这个结果:

numpy np.apply_along_axis function speed up?