import cv2
import numpy as np
import sys
panda1 = cv2.imread("panda.png")
panda2 = cv2.imread("panda2.png")### generate Gaussian pyramind for first
G = panda1.copy()
gpk =[G]for i inrange(6):
G = cv2.pyrDown(G)
gpk.append(G)### generate Gaussion pyramind for second
G = panda2.copy()
gpe =[G]for i inrange(6):
G = cv2.pyrDown(G)
gpe.append(G)# generate Laplacian Pyramid for first
lpk =[gpk[5]]for i inrange(5,0,-1):
GE = cv2.pyrUp(gpk[i])
L = cv2.subtract(gpk[i-1], GE)
lpk.append(L)# generate Laplacian in Pyramid for second
lpe =[gpe[5]]for i inrange(5,0,-1):
GE = cv2.pyrUp(gpe[i])
L = cv2.subtract(gpe[i-1], GE)
lpe.append(L)# Now add left and right halves of image in each level
LS =[]for la, lb inzip(lpk, lpe):
rows, cols, dpt = la.shape
ls = np.hstack((la[:,0:int(cols/2)], lb[:,int(cols/2):]))
LS.append(ls)
ls_ = LS[0]for i inrange(1,6):
ls_ = cv2.pyrUp(ls_)
ls_ = cv2.add(ls_, LS[i])
cv2.imshow("RESULT", ls_)
key = cv2.waitKey(0)
cv2.destroyAllWindows()