使用Python和Numpy将2张图像混合成1张

问题描述 投票:0回答:3

我需要将 2 个 numpy.ndarrays 作为参数,并逐像素迭代它们,将 2 个值相加并除以 2。

本质上是创建两者的混合图像并将其作为 numpy.ndarray 返回

这是我的想法,但确实需要一些建议。

    def blendImages(image1, image2):            
        it1 = np.nditer(image1)
        it2 = np.nditer(image2)            
        for (x) in it1:
            for (y) in it2:
                newImage = (x + y) / 2
        return newImage
python opencv numpy
3个回答
9
投票

您可以使用OpenCV函数addWeighted,例如:

 cv2.addWeighted(img1,0.5,img2,0.5,0)`

6
投票

只要数组大小相同:

newImage = 0.5 * image1 + 0.5 * image2

0
投票

地图混合函数正在添加一个加权数组,其权重与第二个数组的权重相反,如下所示:

result =  array1 * weight + array2 * (1-weight)

使用 array1 的权重为

0.8
,计算结果为:

result = array1 * 0.8 + array2 * 0.2 

注意:我们假设重量

1.0
是代表100%的最大重量

© www.soinside.com 2019 - 2024. All rights reserved.