图像金字塔可以尽可能清晰的放大和缩小图片
目录
1 高斯金字塔
1.1 理论
1.1.1 向下采样方法(缩小)
是向金字塔塔顶走的,它这个金字塔应该倒过来看
- 第一步 带归一化的高斯滤波
- 第二步 去除所有偶数行和列
这个是一次向下采样的方法,每进行一次向下采样,图象小一半
1.1.2 向上采样方法(放大)
- 第一步 每个方向扩大为原来的两倍,我图例是2*2矩阵,现在变成4*4矩阵,每一个点也相应扩大,比如10这个像素点,现在10这个像素点要变成2*2的矩阵,原点处于左上角,其余3个点补0
- 第二步 这个先前的意思是向下采样时的卷积核,卷积核的大小是我们自己定义的,内容服从高斯分布,之后将定义的卷积核*4,卷积核是矩阵,4是常数,下面咱们回顾一下矩阵*常数该怎么运算
我们可以看到矩阵乘以常数之后还是矩阵,我们使用已经乘过的矩阵对放大的图片进行高斯滤波
总结一下,先扩大矩阵,之后对扩大的矩阵进行高斯滤波
1.2 代码实现
1.2.1 向上采样(放大) pyrUp()
我们还使用之前猫的图片,之后给放大的图展示出来
这个图在文档中显示不太明显,我们可以看一下shape
我们可以看之前的文章,对比一下,这个图的长与宽是各大了2倍的
我们也可以对上采样之后的图片再进行一次上采样,同样会扩大二倍
运行之后我的屏幕已经展示不过来了,我们可以看一下两次的shape
1.2.2 向下采样(减小) pyrDown()
我们再看一下shape
发现图像减小了,长宽各为原来的1/2
下采样也可以对之前的下采样过的图像再执行一次下采样,与上面上采样同理,我就不展示了
将图像上采样再下采样不会得到与原来一样的图,只会让图更模糊,先下采样再上采样也一样,不会得到与原来的相同的图,只会让图更模糊
2 拉普拉斯金字塔
2.1 理论
- 低通滤波:高斯滤波,均值滤波,中值滤波都属于低通滤波
我们抽出一轮操作来看
G0是原始图像,G1是缩小后的图像,E1是放大后的图像,LP1是结果
- 第一步 低通滤波
- 第二步 缩小图像
- 第三步 将缩小后的图像放大,这个时候我们得到结果的尺寸是与原图像相同的
- 第四步 原图像-第三步的结果
上面提到的缩小是高斯金字塔向下采样,放大是高斯金字塔向上采样
上面是一轮的操作,我们再看后面
如果进行多轮就有了后面的操作,GL是上面图中的LP1,下面这个图省略了,操作步骤与上面的步骤相同,下面这个图省略了一个GL1(缩小的过程)
2.2 代码实现 pyrDown()与pyrUp()
有的时候变换完会这样
值会出现极小的误差情况,这个时候我们resize下其中的一个就好