图像金字塔被广泛用于各种视觉应用中。图像金字塔是一个图像集合,集合中所有的图像都源于同一个原始图像,而且是通过对原始图像连续降采样获得,直到达到某个中止条件才停止降采样。
我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。
1 高斯金字塔cvPyrDown()
高斯金字塔用来向下降采样图像,而拉普拉斯金字塔则用来从金字塔低层图像中向上采样重建一个图像。
这里的向下与向上采样,是对图像的尺寸而言的(和金字塔的方向相反),向上就是图像尺寸加倍,向下就是图像尺寸减半。而如果我们按上图中演示的金字塔方向来理解,金字塔向上图像其实在缩小,这样刚好是反过来了。
要从金字塔第i层生成第i+1层(我们表示第i+ 1层为Gi+1),我们先要用高斯核对Gi进行卷积,然后删除所有偶数行和偶数列。当然,新得到的图像面积会变为源图像的四分之一。按上述过程对输入图像G0循环执行操作就可产生整个金字塔。同时,向下取样会逐渐丢失图像的信息——图像越来越模糊。
1.1高斯金字塔函数cvPyrDown()
void cvPyrDown
(
const CvArr*src,
CvArr*dst,
int filter=CV_GAUSSIAN_5x5
);
参数:
src 输入图像。
dst 输出图像,其宽度和高度应是输入图像的一半。
filter 卷积滤波器类型,目前仅支持CV_GAUSSIAN_5x5(默认选项)。
1.2代码实例
#include "highgui.h"
#include