原文链接:http://blog.csdn.net/davebobo/article/details/51885043
【图像金字塔】
图像金字塔这个词,我们经常在很多地方可以看到。它是图像多尺度表达的一种,最主要的是用于图像的分割。同时,图像金字塔也被广泛用于各种视觉应用中。
图像金字塔是一个图像集合,集合中所有的图像都源于同一个原始图像,而是通过对原始图像连续降采样获得,直到达到某个终止条件才停止降采样。我们可以通过下图来形象的说明图像金字塔的概念。在金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。在金字塔中,层级越高,则图像越小,分辨率越低。
在文献中,我们经常遇到两种很典型的图像金字塔-高斯金字塔和拉普拉斯金字塔。
高斯金字塔:向下降采样图像
拉普拉斯金字塔:从低层图像中向上采样重建图像。
具体的过程,我们可以这么描述下:
高斯金字塔:金字塔从i层生成第i+1层,我们要先用高斯核对Gi进行卷积,然后,删除所有偶数行和偶数列。这样,新得到的图像面积会变为源图像的四分之一。循环上述过程,即可产生整个金字塔。
拉普拉斯金字塔:图像首先在每个维度上扩大为原来的两倍,新增的行以0填充,然后给指定的滤波器进行卷积(实际上是一个在每一维上都扩大为2倍的过滤器)去估计“丢失”像素的近似值。得到后的图像与原来的图像相比较会发觉比较模糊,丢失了一些信息。为了恢复出原来的图像,我们需要获得这些丢失的信息,这些信息就构成了拉普拉斯金字塔。
在OpenCV中给出了两个函数,分别提供了从金字塔上一级图像生成下一级图像以及将已知图像在每一个维度上都扩大两倍的函数cvPyrDown()和cvPyrUp():
void cvPyrDown(
IplImage* src,
IplImage* dst,
IplFilter filter=CV_GAUSSIAN_5×
) void cvPyrUp(
IplImage* src,
IplImage* dst,
IplFilter filter=CV_GAUSSIAN_5×
)
PyrDown函数:
Smoothes an image and downsamples it.
平滑图片并下采样
void pyrDown(InputArraysrc, OutputArraydst, const Size&dstsize=Size());
Parameters:
src – Source image.
原图片
dst – Destination image. It has the specified size and the same type as src .
目标图片 它有指定的对象和相同的类型和原图片
dstsize –
Size of the destination image. By default, it is computed as Size((src.cols+1)/2, (src.rows+1)/2) . But in any case, the following conditions should be satisfied:
目标图像大小。默认情况下,它是计算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情况下,应满足以下条件:
The function performs the downsampling step of the Gaussian pyramid construction. First, it convolves the source image with the kernel:
该函数执行高斯金字塔结构下采样的步骤。首先,它与内核的源图像进行卷积:
Then, it downsamples the image by rejecting even rows and columns.
然后,它再下采样图像的行和列。
pyrUp函数:
Upsamples an image and then smoothes it.
上采样图像然后平滑它。
void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size());
Parameters:
src – Source image.
原图片
dst – Destination image. It has the specified size and the same type as src .
目标图片 它有指定的对象和相同的类型和原图片
dstsize –
Size of the destination image. By default, it is computed as Size(src.cols*2, (src.rows*2) . But in any case, the following conditions should be satisfied:
目标图像大小。默认情况下,它是计算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情况下,应满足以下条件:
The function performs the upsampling step of the Gaussian pyramid construction though it can actually be used to construct the Laplacian pyramid. First, it upsamples the source image by injecting even zero rows and columns and then convolves the result with the same kernel as in pyrDown() multiplied by 4.
该函数执行采样步骤的高斯金字结构虽然它实际上可以用来构建拉普拉斯金字塔。首先,它下采样原图像的行和列,然后用相同的内核卷积的结果作为pyrdown()乘以4。