本部分主要作为付费课程的讲解,不是太详细,文末有具体链接。
效果
步骤
实现
import numpy as np
import cv2 as cv
apple = cv.imread('pic/apple.jpg')
orange = cv.imread('pic/orange.jpg')
A = [apple] # 320, 320
B = [orange]
LA, LB, L = [], [], []
n = 5
for i in range(1, n+1):
A.append(cv.pyrDown(A[-1]))
B.append(cv.pyrDown(B[-1]))
for i in range(n):
LA.append(cv.subtract(A[i], cv.pyrUp(A[i+1])))
LB.append(cv.subtract(B[i], cv.pyrUp(B[i+1])))
LA.append(A[n])
LB.append(B[n])
for la, lb in zip(LA, LB):
h, w, c = la.shape
L.append(np.hstack([la[:, :w//2], lb[:, w//2:]]))
B = L[n]
for i in range(n, 0, -1):
B = cv.add(cv.pyrUp(B), L[i-1])
plt.imshow(B) # B 取自 blend(融合)之意,最终的融合结果
plt.show()
说明:
- 未经许可,谢绝转载。
- 本教程为《数字图像处理Python OpenCV实战》的配套代码相关内容。
免费视频教程为0-6章(标题号≤6),可在此处点击观看。
所有课件及源代码可在此处下载:
链接:https://pan.baidu.com/s/198PySe_vebO3e06idHSQ6g
提取码:11o4
有问题可在QQ群(1079300899)指出,进群答案:数字图像处理。在本文评论指出可能导致回复很晚。