拉噗拉司金字塔LaplacianPyramid学习笔记(一半章子怡 + 一半孙俪)
OpenCV3拉噗拉噗拉噗拉嘶金字塔LaplacianPyramid学习笔记(一半章子怡 + 一半孙俪)
- 这个算法对我来说很难,所以写下过程来记录
- 第一步,为两张图分别生成高斯金字塔
- 第二步,为两张图分别生成拉普拉斯金字塔
- 第三步, 融合两张图的拉普怕斯金字塔
- 第四步,不停的pryUP最小的图像,并将其与拉普拉斯的上层相加,获得最终图像
- 后记-一些小想法
这个算法对我来说很难,所以写下过程来记录
OpenCV中的一个基本的左右混合图片的算法,对大神来说可能很简单,小白觉得光看官方的代码还有很多不能理解的地方。所以特地作了一些图来帮助自己理解和记录。也希望对同样刚入门计算机图像的人有所帮助。
PS:如果理解不到位,或者有更多给我的学习建议,请给我留言哈~
Emmm, 混合橘子和苹果有什么意思嘛!
我们来找两个美女混一下~
个人还是更喜欢孙俪的颜(严重跑偏
第一步,为两张图分别生成高斯金字塔
// 载入库,读入图片
import cv2
import numpy as np
A = cv2.imread('SunLi.jpg')
B = cv2.imread('ZhangZiYi.jpg')// 为孙俪生成高斯金字塔
G = A.copy()
gpA = [G]
for i in range(6):G = cv2.pyrDown(G)gpA.append(G)// 为章子怡生成高斯金字塔
H = B.copy()
gpB = [H]
for i in range(6):H = cv2.pyrDown(H)gpB.append(H)
cv2.pyrDown(src)
顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值
如下图所示,1号像素取其上下左右中的高斯平均数,234号亦然。
这个操作相当于抽离了一半的列和行。图像变为原来的一半。
第二步,为两张图分别生成拉普拉斯金字塔
// 为A生成拉普拉斯金字塔
lpA = [gpA[5]]
for i in range(5, 0, -1):// 将金字塔升级UP = cv2.pyrUp(gpA[i])// 用上一层的金字塔减去升级完的金字塔LA = cv2.subtract(gpA[i-1], UP)// 将这一层加入数列lpA.append(LA)// 为B生成拉普拉斯金字塔
lpB = [gpB[5]]
for i in range(5, 0, -1):// 将金字塔升级UP = cv2.pyrUp(gpB[i])// 用上一层的金字塔减去升级完的金字塔LA = cv2.subtract(gpB[i-1], UP)// 将这一层加入数列lpB.append(LA)
cv2.pyrUp(src)
这个函数负责把小的图像放大两倍(信息有丢失的)
我们从gpA[5]开始,把它放大两倍,然后储存在UP中
cv2.subtract(gpA[i-1], UP)
然后我们用和UP一样大小,但信息量更大的gpA[i-1]去减去UP
如上图所示
第一步是“gpA[4]” 减去 “gpA[5]的up版本”,储存在lpA[1]中。
第二步是是“gpA[3]“ 减去 “gpA[4]的up版本”,储存在lpA[2]中,以此类推。
数学公式如下图所示
G代表高斯金字塔,L代表拉普拉斯金字塔
它生成的图片很像边界图,大部分的像素点都是0
第三步, 融合两张图的拉普怕斯金字塔
// 每一层拉普拉斯都是一半左边一半右边
LS = []
// 把两张图的每一层通过zip两两配对
for la, lb in zip(lpA, lpB):// 读取图片的列数 colsrows, cols, dpt = la.shape// 取孙俪的左边,章子怡的右边融合成新的拉普怕斯金字塔ls = np.hstack((la[:, :int(cols/2)], lb[:, int(cols/2):]))LS.append(ls)
这里我们注意到除了LS[0]取自于一半的lpA[0]和lpB[0]是“彩色”的图像
其他的都是“边缘”图像
第四步,不停的pryUP最小的图像,并将其与拉普拉斯的上层相加,获得最终图像
// 重新构建图像
ls_ = LS[0]
for i in range(1, 6)://不停的pyrUP最小的图像ls_ = cv2.pyrUp(ls_)//并将其与一半一半的拉普拉斯相加ls_ = cv2.add(ls_, LS[i])cv2.imshow('image', ls_)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个步骤我的理解是:
1.模糊放大一个图片
2.强化这个图片的边缘
3.循环上面这个过程
emmmm,所以最后我们就获得了一个肥肠模糊…但是边缘又不糊的混合图像…
emmmm,总之就是…奇丑无比…有点微妙
后记-一些小想法
通过强调拼合的边缘+模糊放大的办法,自然的融合了图像,不过丢失的信息让图像看上去有点不真实。边缘一直累加超过255了,就很泛白(莫名还有点像打了高光??)
感觉如果多加一些边界,而不是一半一半的办法来混合图像的话效果应该会很有趣(就是hstack那里要再想一下)
或者就单纯用来处理一张图像,再调一下色调啥的(港风P图系列??)
希望我的记录对和我一样的小白有帮助!
拉噗拉司金字塔LaplacianPyramid学习笔记(一半章子怡 + 一半孙俪)相关推荐
- wringPi 初始化GPIO 为上拉_敏矽微电子Cortex-M0学习笔记04-GPIO详解及应用实例
前面我们已经对敏矽微电子的基于cortex m0内核的ME32F030R8T6的基本功能做了介绍,然后详细讲解了开发环境MDK的安装,pack包的安装,工程的建立及程序的仿真,紧接着讲解了ME32F0 ...
- go get 拉取指定版本_go语言学习笔记-基础知识-3
相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...
- 傅里叶变换,拉氏变换,Z变换学习笔记
傅里叶变换,拉氏变换,Z变换 书写动机 三角函数 正弦波 从正弦波到傅里叶 "任何"周期信号都可以用一系列成谐波关系的正弦曲线来表示. 分解原波 即:当两个不同频率的正弦波相乘,对 ...
- 拉勾教育第五期学习笔记
CSS核心样式.HTML5 + CSS3新特性 css常用样式-font-weight 粗细font-weight 作用:设置文字是否加粗显示: 属性名:font-weight,属于font属性的一个 ...
- Python学习笔记——流程控制(拉勾教育数据分析实战训练营学习笔记)
流程控制 1 程序结构 顺序结构 按编写顺序依次执行 选择结构 根据条件选择的结果,选择执行不同的语句 循环结构 在一定条件下,反复执行某段程序 2 选择语句 2.1 if语句 语法规则 ...
- 金字塔原理学习笔记1
听说金字塔原理是一本不错的书,买来一看,并与大家分享读后感. 金字塔结构中的各种思想之间只有非常少的几种逻辑关系:向上.向下或者横向关系,这种简单性使我们有可能找到这些逻辑关系的一般性规则.要写出条理 ...
- 拉勾启源老师mysql讲义,【拉勾教育数据分析实战训练营】--Tableau学习笔记-重点回顾1...
[拉勾教育数据分析实战训练营]--Tableau学习笔记-重点回顾1 [拉勾教育数据分析实战训练营]--Tableau学习笔记-重点回顾1 以下是我搜罗的一些官方优秀case分享: 1.https:/ ...
- java学习笔记(22)java输入标签,单选框,复选框,添加文件,文本域,下拉框
通过输入标签来制作如图所示的输入框: <body>账号:<input type="text" /><br />密码:<input type ...
- svn拉取文件合并_svn如何使用import目录作为工作拷贝+我的svn学习笔记
前奏 svn作为一款极其优秀的开源版本控制系统,应用广泛,从组织到个人遍及各行各业.因此学习和熟练掌握它,对提高我们日常工作效率和数据安全非常重要,尤其对开发人员协同管理Project的文档,代码,各 ...
最新文章
- 陶哲轩实分析 定理 13.3.5 :紧致度量空间上的连续函数一致连续
- 机器学习 阴性集的选择 —— drug-target interactions (DTIs)
- 卫星图像中的车辆分析--A Large Contextual Dataset for Classification, Detection and Counting of Cars
- 容器持久化存储训练营”启动倒计时!3天攻破K8s难点
- Web框架 — Flask
- woocommerce分类页面模板_怎样让wordpress网站的不同分类页面,调用不同的banner图片?...
- python迭代器生成器装饰器
- 【Flask】下载多个文件
- Linux下设置定期执行脚本
- ADOBE AIR 技术
- ffplay 分析概述
- 环境规制指数,两种测算方法,整理好的面板数据
- ArduinoUNO实战-第十二章-累加器实验
- 乐高大颗粒作品24:金蟾
- Tableau 网站流量分析案例之页面指标分析(一)
- uniCloud使用
- Swift macOS NSTextField 响应键盘按键 Enter 回车键,或者其它按键
- Python+Django实现基于人脸识别的门禁管理系统,附带源码!!
- bean的一种使用姿势
- 《花田小院》丨国风版《梦幻花园》
热门文章
- linux 内核空间占用cpu百分比过高,线上linux系统故障排查之一:CPU使用率过高
- VirtualBox 立即卸载此应用,因为它与Windows 10 不兼容
- RT3070无线网卡AP模式
- Win10安装java环境
- 5G智慧园区整体架构方案(ppt)
- java驱动打印机_本地打印机驱动程序如何找到网络打印机?
- 回收站清空的文件怎么恢复?学会这2招,简单又实用
- 【Android】如何实现App的快捷方式的创建、添加与管理呢?
- 恢复系统设置或计算机无法点击进入,怎么还原电脑系统设置(电脑还原系统设置操作步骤)...
- 经纬度计算距离的公式