import cv2 import numpy as np apple = cv2.imread('salah.png') orange = cv2.imread('neymar.png') def get_laplacian_pyramids_list(img,n): #tạo các list kim tu thap laplacian G = img.copy() gp = [G] for i in range(n): G = cv2.pyrDown(G) gp.append(G) lp = [gp[n-1]] for i in range(n-1,0,-1): gauss_extend = cv2.pyrUp(gp[i],dstsize = (gp[i-1].shape[1],gp[i-1].shape[0])) lap = cv2.subtract(gp[i-1],gauss_extend) lp.append(lap) return lp lp_Apple = get_laplacian_pyramids_list(apple,6) lp_Orange = get_laplacian_pyramids_list(orange,6) # l = laplacian LS = [] for lpA,lpO in zip(lp_Apple,lp_Orange): rows,cols,la = lpA.shape #ghep nua ben trai voi nua ben phai cua 2 h.a ls = np.hstack((lpA[:,:cols//2],lpO[:,cols//2:])) LS.append(ls) #xây dựng lại hình ảnh ls_ = LS[0] print(LS[1].shape) for i in range(1,6): ls_ = cv2.pyrUp(ls_,dstsize = (LS[i].shape[1],LS[i].shape[0])) print(ls_.shape) print(LS[i].shape) ls_ = cv2.add(ls_, LS[i]) #ghep 2 hinh anh goc: real = np.hstack((apple[:,:cols//2],orange[:,cols//2:])) cv2.imshow('ls_',ls_) cv2.imwrite('both.png',ls_) cv2.waitKey(0) cv2.destroyAllWindows()