自学OPENCV+PYTHON+MACOS-X(4)图形金字塔进行苹果和橘子融合详解
来源:互联网 发布:源码baiboku 编辑:程序博客网 时间:2024/04/30 14:30
利用图像金字塔进行苹果和橘子的融合,并对代码进行注释
# -*- coding: utf-8 -*-import numpy as np,sysimport cv2if __name__ == '__main__': A = cv2.imread('apple.jpg',0) B = cv2.imread('orange.jpg',0) G = A.copy() gpA = [G] for i in xrange(6): #生成6层苹果图像高斯金字塔 G = cv2.pyrDown(G) gpA.append(G) G = B.copy() gpB = [G] for i in xrange(6): #生成6层橘子图像高斯金字塔 G = cv2.pyrDown(G) gpB.append(G) lpA = [gpA[5]]#lpA赋值苹果高斯金字塔尖端,也就是最小段 for i in xrange(5, 0, -1): #从苹果金字塔最尖端往上遍历 GE = cv2.pyrUp(gpA[i])#在高斯金字塔图层生成拉普拉斯金字塔图层 L = cv2.subtract(gpA[i-1], GE) #此处需要注意,开始我使用的图片分辨率为320*240 连续除6次2,如果不能整除,代码会报错,此处是矩阵相加需要矩阵行列长度都相等 lpA.append(L) #添加进拉普拉斯金字塔 lpB = [gpB[5]] for i in xrange(5, 0, -1): GE = cv2.pyrUp(gpB[i]) L = cv2.subtract(gpB[i-1], GE) lpB.append(L) LS = []#LS为空list for la,lb in zip(lpA, lpB): #利用zip把所有拉普拉斯金字塔变成list rows,cols = la.shape ls = np.hstack((la[:,0:cols/2], lb[:,cols/2:])) #苹果和橘子各半边按列对接 LS.append(ls) ls_ = LS[0] #赋值金字塔最小端 for i in xrange(1, 6): #从小到大将对接好的图恢复成大图 ls_ = cv2.pyrUp(ls_) ls_ = cv2.add(ls_, LS[I]) real = np.hstack((A[:,:cols/2], B[:, cols/2:]))#原图各半对接用来对比 cv2.imwrite('Pyramid_blending2.jpg', ls_) cv2.imwrite('Direct_blending.jpg', real) cv2.namedWindow('image') cv2.namedWindow('image2') cv2.imshow('image', ls_) cv2.imshow('image2', real) cv2.waitKey(0) & 0xFF cv2.destroyAllWindows()
阅读全文
0 0
- 自学OPENCV+PYTHON+MACOS-X(4)图形金字塔进行苹果和橘子融合详解
- 自学OPENCV+PYTHON+MACOS-X(1)
- 自学OPENCV+PYTHON+MACOS-X(2)
- 自学OPENCV+PYTHON+MACOS-X(3)
- 自学OPENCV+PYTHON+MACOS-X(5)
- Python+OpenCV学习(14)---Laplace金字塔进行图像融合
- python+opencv图像金字塔融合
- Python-OpenCV教程-8-图像金字塔融合
- python+opencv图像金字塔融合 (超详细讲解原理及代码讲解)
- 向微软和 Google 学习,苹果或将融合 macOS 和 iOS 应用生态
- python opencv入门 图像金字塔(16)
- 自学笔记:用python和opencv进行摄像头的人脸检测
- OpenCV Using Python——构造高斯金字塔和拉普拉斯金字塔
- macOS: 安装OpenCV 3.2.0 和Python 3.6.0
- opencv-python(14):图像金字塔
- 苹果橘子经济社会学
- 苹果香蕉橘子梨
- 再议【苹果、橘子】
- centos7.3中RPM方式安装mysql5.7
- Git学习记录
- putty-连接服务器
- ijkplayer 入门之Error事件源码简单跟踪
- 共享免费生活代码
- 自学OPENCV+PYTHON+MACOS-X(4)图形金字塔进行苹果和橘子融合详解
- Ant的安装和使用
- 下载配置ACE网络库流程
- AppCan下拉刷新的代码
- 多线程注意事项
- 照片处理小工具三合一设计到实现(三)
- 根据下拉框排序,自定义过滤器,添加,查询等操作
- Jenkins入门系列之——01第一章 Jenkins是什么?
- ajax+php超时操作,延时返回数据