Matplotlib二个图层叠加,如何暴露出下层图片?

主要目的:我现在有二张图片,一张是背景图(拍摄的是实验动物,黑白图),一张是发光图(实验动物身体某些部位会发光,会加伪彩)。我想把二张图叠加起来,这样就可以很清楚的看到实验动物身体哪些部位在发光。
实现手段:目前我可以通过设定阈值,把低于阈值的数组元素值设置为0,这个数值对应的颜色是黑色的,我想问的是能把这个颜色设置为透明色吗?这样就可以把下层这些位置的背景图暴露出来。或者有没有其他什么更好的办法?
谢谢!

基于Monster 组和GPT的调写:
用Matplotlib的alpha参数来将图像透明度设置为透明,这样就可以看到下面的图像。以下是一个示例代码,可以将第二个图像的透明度设置为0.5:

import numpy as np
import matplotlib.pyplot as plt

# 创建两张图片
bg_img = np.random.random((256, 256))
glow_img = np.random.random((256, 256))

# 将低于阈值的像素设置为0
threshold = 0.5
glow_img[glow_img < threshold] = 0

# 创建一个figure并绘制背景图
fig, ax = plt.subplots()
ax.imshow(bg_img, cmap='gray')

# 将发光图作为上层图像绘制,并设置透明度为0.5
ax.imshow(glow_img, cmap='jet', alpha=0.5)

# 显示图像
plt.show()


在上面的代码中,背景图像是灰度图像,发光图像是伪彩色图像。将发光图像的颜色映射设置为'jet',并将透明度设置为0.5,以便查看背景图像。

先绘制不透明图层,置于下层;再绘制透明/半透明图层,置于上层。透明度由参数 alpha=0.5 设置。

plt.imshow(imgLight, cmap='gray') # 不透明图层,置于下层
plt.imshow(img, cmap='gray', alpha=0.5) # 半透明图层,置于上层