OpenCV图像处理篇之采样金字塔
Last edited time
Sep 23, 2024 03:04 PM
AI summary
图像金字塔是通过高斯平滑和下采样生成的一系列不同分辨率的图像,广泛应用于图像处理,如SIFT特征匹配。程序示例展示了如何使用
pyrDown
和pyrUp
函数进行降采样和插值,要求输入图像的尺寸为2的幂。降采样会导致数据丢失,恢复后的图像会比原图模糊。Tags
Image Processing
Gaussian Pyramid
SIFT Feature Matching
Last edited by
图像金字塔
图像金字塔是通过将原始图像经过平滑、下采样所生成一系列具有不同分辨率的图像的集合。金字塔结构(Pyramid)适于多分辨率处理的一种图像存储数据结构。
最常用的生成图像金字塔的方法是采用高斯函数平滑图像,每次将分辨率降低为原来的一半,由此得到一个图像序列{ML,ML-1,……,M0},图像金字塔的存储量为
N^2*(1+1/4+1/16+...)=(4*N^2)/3
。
如上图:最右边为原始图像,从右到左依次为使用高斯平滑1次、2次和3次后的图像,这些图像共同组成了图像金字塔。
图像金字塔这种结构在图像处理中有广泛的用途。最著名的特征匹配算子SIFT就是通过构造图像金字塔来完成的。有关图像金字塔在SIFT特征提取算法中的应用可参见Rachel Zhang的博文“SIFT特征提取分析”。
程序分析
- 使用高斯图像金字塔进行降采样和插值的函数分别是
pyrDown
和pyrUp
,参数依次为原图像、采样结果图像、采样后的图像尺寸。
- 上述程序中的降采样操作因为都是按2为倍数进行的,因此要求输入图像的长宽都必须是2n。
if ( src.cols & (src.cols-1) )
是用来判断原图像的列是否为2n的语句。请仔细体会这种判断某个数是否是2^n的方法——x*(x-1)返回0表示x是2^n,否则不是。
结果显示
下面一系列图片展现的是先将原图像通过图像金字塔降采样(会存在数据丢失),再通过金字塔插值恢复图像过程中图像的变化过程。由于降采样过程中存在数据丢失,所以可以看到恢复到原图像大小后的图像比原图像模糊。





Loading...