Python Matplotlib在图像上绘制不带背景的图像
1 个回答
2
你可以使用矩阵操作的方法来混合你的图像,只要满足某些条件。
比如:
img3=np.where(img2 < 10 , img1, img2)
这样做会生成一张新图像,图像中所有值小于10的地方会被img1的值替换掉。
唯一需要注意的是,这两张图像必须大小相同,或者至少它们的值可以调整到相同的大小。
(np是numpy的缩写)
如果一张图是uint格式,另一张是float32格式,你需要先转换其中一张。从你提供的图像来看,它们基本上都是单通道的,所以我建议把RGB格式的图像也转换成单通道:
比如可以用下面的方式:
img_bw= img_rgb @ [0.33,0.33,0.33] / 255.0
这样可以把它们从整数转换为浮点数,并且计算三个颜色通道的平均值,浮点数的范围是0.0到1.0。
另外,你也可以用不同的颜色通道来表示最终图像中的不同源图像。
还有一个选择是在显示图像时使用imshow的alpha选项。
plt.imshow(img1)
plt.imshow(img2,alpha=np.where(img2 < 10,1.0,0.0))