我需要将 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
您可以使用OpenCV函数addWeighted,例如:
cv2.addWeighted(img1,0.5,img2,0.5,0)`
只要数组大小相同:
newImage = 0.5 * image1 + 0.5 * image2
地图混合函数正在添加一个加权数组,其权重与第二个数组的权重相反,如下所示:
result = array1 * weight + array2 * (1-weight)
使用 array1 的权重为
0.8
,计算结果为:
result = array1 * 0.8 + array2 * 0.2
注意:我们假设重量
1.0
是代表100%的最大重量