数字图像处理中的图像金字塔是什么,如何构造呢?
最近在看一篇图像去模糊的论文:《Two-Phase Kernel Estimation for Robust Motion Deblurring》,论文中的算法用到了
image pyramid(图像金字塔)
的概念,请问图像金字塔是什么,他的作用何在,应该如何构造呢?
另外,如果有看过这篇论文的大神请举个手,希望能与你探讨论文中的更多细节,谢谢!
Answers
以多分辨率来解释图像的一种有效但概念简单的结构就是图像金字塔。
一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。
金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。当向金字塔的上层移动时,尺寸和分辨率就降低。
对于一幅尺寸为2^J*2^J的图像,则其图像金字塔中间级的尺寸是2^j*2^j,其中j的理论取值返回是0,1,2,...,(J-1),J。但是由于当j很小时,图像将丢失大部分信息,所以一般限制只用P+1级来减少原来图像近似值的尺寸,也就是j的实际取值是(J-P),(J-P+1),...(J-1),J。
而一般处理这种分辨率变化,简单的方法就是隔行取值来生成低分辨率的图像,复杂点的方法就涉及到图像的内插和过滤等步骤了,当然复杂点的方法使得生成的低分辨率下的图像更加平滑和真实。对某幅原始图像生成了一系列的低分辨率图像之后,这些图像和原始图像一起就形成了图像金字塔。
例如,对于512*512的图像,该图像的4级图像金字塔就是:
当然,有时候也会对原图像进行扩展,生成分辨率更高的图像,然后把这个图像放到金字塔的更底层。这时候就需要更多处理,使得生成的图像保持真实性,避免色块和噪声等的产生。
在matlab里面,函数
impyramid
专门用于生成图像金字塔,直接调用就可以了。
格式:B = impyramid(A, direction)
作用:对A进行Gaussian金字塔变换,生成的图像是B。direction为“reduce”和“expand”,分别对应着分解和扩张。
注:
1.m*n的A“reduce”和“expand”后的维数分别对应ceil(M/2)*ceil(N/2)和(2*M-1)*(2*N-1)。
2.impyramid只对前两维有效。