如何使用matplotlib添加两个或更多图像?

时间:2016-08-29 12:46:18

标签: python image matplotlib

我使用imread读取图像然后我想计算平均图像。如何使用matplotlib添加(和除)?

我在matlab中搜索像imadd这样的东西。

代码:

img1 = matplotlib.image.imread("path")
img2 = matplotlib.image.imread("path1")
img3 = matplotlib.image.imread("path2")

由于

2 个答案:

答案 0 :(得分:1)

matplotlib.image可能就是你要找的东西。如果你想操纵图像,你还需要numpy,因为它们基本上只是具有3或4维(RGB或RGBA)的图像大小(例如1920 x 1080)的数组。

import matplotlib.image as mpimg
import matplotlib.pyplot as plt

img1 = mpimg.imread("foo.png")
img2 = mpimg.imread("bar.png")

现在您正在设置图像处理。如果您的图片具有相同的格式和大小(例如RGB。请使用img1.shapeimg2.shape进行检查),您可以执行以下操作:

img3 = plt.imshow((img1 + img2) / 2)

答案 1 :(得分:1)

您可以使用常规总和操作:

img4 = img1 + img2 + img3

然而,这与matlab中的imadd并不完全相同。 Matplotlib使用0到1之间的RGB值。因此,某些像素中的总和将提供高于1的值(对于数组类型有效;如果数据类型为uint8,则不一样)。因此,执行以下操作以确保您的数据正确无误:

img1 = matplotlib.image.imread("path1")
img2 = matplotlib.image.imread("path2")
img3 = np.clip(img1 + img2, 0, 1)

请注意,所有图片的大小必须相同。