Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 混合多个图像,同时保留原始颜色_Python_Python Imaging Library - Fatal编程技术网

Python 混合多个图像,同时保留原始颜色

Python 混合多个图像,同时保留原始颜色,python,python-imaging-library,Python,Python Imaging Library,我想要的是: 我的问题有解决办法吗?原始图像可以是任何东西,只是给出了一个参考图像 还有其他方法可以做到这一点,但这应该是非常通用的,并且适用于其他情况: #!/usr/bin/env python3 from PIL import Image import numpy as np # Load both images and make into Numpy arrays a=np.array(Image.open('A.png').convert('RGBA')) b=np.arra

我想要的是:

我的问题有解决办法吗?原始图像可以是任何东西,只是给出了一个参考图像


还有其他方法可以做到这一点,但这应该是非常通用的,并且适用于其他情况:

#!/usr/bin/env python3

from PIL import Image
import numpy as np

# Load both images and make into Numpy arrays
a=np.array(Image.open('A.png').convert('RGBA'))
b=np.array(Image.open('B.png').convert('RGBA'))

# Make masks of all opaque pixels in each image, i.e. alpha>0
mA = a[...,3] > 0
mB = b[...,3] > 0

# Make empty result image
res = np.zeros_like(a)
res[mA] = np.uint8([255,0,255,255])     # make all pixels from A magenta
res[mB] = np.uint8([0,255,255,255])     # make all pixels from B cyan
res[mA & mB] = np.uint8([0,0,255,255])  # make all pixels common to A and B blue

# Save result
Image.fromarray(res).show()

还有其他方法可以做到这一点,但这应该是非常通用的,并且适用于其他情况:

#!/usr/bin/env python3

from PIL import Image
import numpy as np

# Load both images and make into Numpy arrays
a=np.array(Image.open('A.png').convert('RGBA'))
b=np.array(Image.open('B.png').convert('RGBA'))

# Make masks of all opaque pixels in each image, i.e. alpha>0
mA = a[...,3] > 0
mB = b[...,3] > 0

# Make empty result image
res = np.zeros_like(a)
res[mA] = np.uint8([255,0,255,255])     # make all pixels from A magenta
res[mB] = np.uint8([0,255,255,255])     # make all pixels from B cyan
res[mA & mB] = np.uint8([0,0,255,255])  # make all pixels common to A and B blue

# Save result
Image.fromarray(res).show()

您想将A和B混合成C,但您没有给我们A和B。请同时显示您的代码。谢谢。我现在已经添加了,谢谢。图片A和B是一样的。你能纠正一下吗?更新了,很抱歉你想混合A和B来生成C,但你没有给我们A和B。请同时显示你的代码。谢谢。我现在已经添加了,谢谢。图片A和B是一样的。你能纠正一下吗?更新了,很抱歉谢谢你的回答。这正是我想要的汉克斯的答案。这正是我想要的