图像融合是图像处理的一项重要技术,在OpenCV中可以使用addWeighted函数实现图像融合。本文介绍的是基于掩码的图像融合方法,可以选择性的将两幅图像进行融合。
import cv2
import numpy as np
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
mask = cv2.imread('mask.jpg', 0) # 灰度图
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
blended = cv2.addWeighted(img1, 0.7, img2, 0.3, 0)
result = cv2.addWeighted(blended, 1, mask, 0.5, 0)
在这里,我们先将原始图像进行融合得到blended,然后使用addWeighted将blended与掩码进行融合,最终的输出为result。
完整代码示例:
import cv2
import numpy as np
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
mask = cv2.imread('mask.jpg', 0)
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
blended = cv2.addWeighted(img1, 0.7, img2, 0.3, 0)
result = cv2.addWeighted(blended, 1, mask, 0.5, 0)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()