import cv2
import numpy as np
A = cv2.imread('test1.png')
B = cv2.imread('test2.png')
G = A.copy()
gpA = [G]
for i in range(6):
G = cv2.pyrDown(G)
gpA.append(G)
G = B.copy()
gpB = [G]
for i in range(6):
G = cv2.pyrDown(G)
gpB.append(G)
lpA = [gpA[5]]
for i in range(5, 0, -1):
GE = cv2.pyrUp(gpA[i])
L = cv2.subtract(gpA[i-1], GE)
lpA.append(L)
lpB = [gpB[5]]
for i in range(5, 0, -1):
GE = cv2.pyrUp(gpB[i])
L = cv2.subtract(gpB[i-1], GE)
lpB.append(L)
LS = []
for la, lb in zip(lpA, lpB):
rows, cols = la.shape[:2]
ls = np.hstack((la[:, 0:256], lb[:, 256:]))
LS.append(ls)
ls_ = LS[0]
for i in range(1, 6):
ls_ = cv2.pyrUp(ls_)
ls_ = cv2.add(ls_, LS[i])
real = np.hstack((A[:, :256], B[:, 256:]))
cv2.imshow('ls_', ls_)
cv2.imshow('real', real)
cv2.waitKey()
cv2.destroyAllWindows()
素材不太好融合的不好