OpenCV + Python3
第十一章 图像金字塔
图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合。该图像是由单个图像通过不断的降采样所产生的,最小的图像可能只有一个像素点。通常情况下,图像金字塔底部是待处理的高分辨率图像(原始图像),向金字塔的顶部移动时,图像的尺寸和分辨率都在不断的降低。通常情况下,每向上移动一级,图像的宽和高都降低为原来的二分之一。
1.理论基础
图像金字塔是同一图像不同分辨率的子图集合,是通过对原图像不断的向下采样而产生的,最简单的金字塔可以通过不断的删除图像的偶数行和偶数列得到。经过上述处理后,图像大小变为原来的四分之一,不断的重复该过程,就可以得到该图像的图像金字塔。
也可以先对原始图像滤波,得到原始图像的近似图像,然后将近似图像的偶数列和偶数行删除以获得向下采样的结果:
· 邻域滤波器:采用邻域平均技术求原始图像的近似图像。该滤波器能产生平均金字塔
· 高斯滤波器:采用高斯滤波器对原始图像进行滤波,得到高斯金字塔,这是OpenCV函数cv2.pyrDown()所采用的方式
以上为向下采样,而在向上采样的时候,通常将图像的宽度和高度都变为原来的两倍,因此要在结果图像中补充大量像素点。对新生成的像素点进行赋值,称为插值处理。
· 最邻近插值:用最邻近的像素点给当前还没有值的像素点赋值
· 常见的向上采样:对像素点以补零的方式完成插值,接下来使用向下采样时所用的高斯滤波器(高斯核)对补零以后的图像进行滤