我使用imread读取图像然后我想计算平均图像。如何使用matplotlib添加(和除)?
我在matlab中搜索像imadd这样的东西。
代码:
img1 = matplotlib.image.imread("path")
img2 = matplotlib.image.imread("path1")
img3 = matplotlib.image.imread("path2")
由于
答案 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.shape
和img2.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)
请注意,所有图片的大小必须相同。