图像金字塔:概念及实现

文章目录

  • 图像金字塔:概念和实现
    • 1. 图像金字塔的概念
    • 2. 图像金字塔的实现方式
    • 3. 基于OpenCV的图像金字塔实现
    • 参考资料

图像金字塔:概念和实现

首先补充一下分辨率的概念:图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做像素每英寸。
当我们观察图像时,通常看到的是由相似的纹理和灰度级像素连城的区域,他们相结合形成了物体。当物体的尺寸较小或者对比度较低时,我们通常要较高的分辨率观察;当物体的尺寸较大或者对比度较高时,则只要粗略的观察就够了。如果一幅图中同时存在较小的物体和较大的物体或者对比度差异较大的物体,那么要想能够同时观察清楚,就要有不同的分辨率。

以多个分辨率表示图像的一种有效并且易于理解的结构便是图像金字塔1

1. 图像金字塔的概念

图像金字塔2是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的、分辨率逐步降低的、且来源于同一张原始图的图像集合。如下图所示,金字塔底部是待处理图像的高分辨率表示,顶部则包含一个低分辨率近似表示。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

图像金字塔:概念及实现_第1张图片

2. 图像金字塔的实现方式

图像金字塔一般通过梯次向下采样获得,直到达到某个终止条件才停止采样。

我们设图像金字塔的基础层级(最底层)为 J J J,其尺寸为 2 J × 2 J 或 N × N 2^J\times2^J 或 N\times N 2J×2JN×N,其中 J = l o g 2 N J=log_2 N J=log2N。顶层层级为0,大小为 1 × 1 1\times 1 1×1,即单个像素。那么一般来说,图像金字塔中的层级和尺寸的关系为: j = l o g 2 n , j=log_2n, j=log2n,其中, j j j为层级, n n n为图像的尺寸。

由于单个尺寸对于图像一般不具有意义,因此一般截短图像金字塔到 P + 1 P+1 P+1级,即取 j = J − P , … , J − 1 , J j=J-P,\dots,J-1,J j=JP,,J1,J,其中 1 ≤ P ≤ J 1\leq P\leq J 1PJ

P+1级金字塔 ( P > 0 ) (P>0) (P>0)的像素总数为: N 2 ( 1 + 1 ( 4 ) 1 + 1 ( 4 ) 2 + ⋯ + + 1 ( 4 ) P ) ≤ 4 3 N 2 N^2\big(1+\frac{1}{(4)^1}+\frac{1}{(4)^2}+\dots++\frac{1}{(4)^P}\big)\leq\frac{4}{3}N^2 N2(1+(4)11+(4)21+++(4)P1)34N2

图像金字塔和残差金字塔可以通过迭代的方式进行计算。如下图所示。在第一次迭代之前,将以图像金字塔形式描绘的图像放在金字塔的J级,然后按照如下算法执行P次。
图像金字塔:概念及实现_第2张图片


for j = J,J-1,...J-P+1:

    第1步:将j层图像进行近似滤波,然后进行下采样,将得到的图像放到金字塔的j-1层;
    
    第2步:将上面得到的图像通过上采样和插值滤波器,得到第j层的一个估计图像;
    
    第3步:用j层图像减去上面得到的j层估计图像,得到j层残差图像。

根据第一步中采用的不同的近似滤波技术,生成的金字塔可以分为:
采用邻域平均滤波,生成平均金字塔;采用低通高斯滤波,产生高斯金字塔;不滤波,产生子取样金字塔。
而第三步中产生的残差金字塔,一般称为拉普拉斯金字塔

高斯金字塔其实就是每次高斯模糊一次,然后进行下采样。其意义3是:

高斯金字塔模仿的是图像的不同的尺度。尺度应该怎样理解?对于一副图像,你近距离观察图像,与你在一米之外观察,看到的图像效果是不同的,前者比较清晰,后者比较模糊,前者比较大,后者比较小,通过前者能看到图像的一些细节信息,通过后者能看到图像的一些轮廓的信息,这就是图像的尺度,图像的尺度是自然存在的,并不是人为创造的。

3. 基于OpenCV的图像金字塔实现

github,sunpro108:pyramids

参考资料


  1. González, R. and R. Woods. “Digital image processing, 3rd Edition.” (2008). ↩︎

  2. 百度百科:图像金字塔 ↩︎

  3. 博客园:SIFT解析(一)建立高斯金字塔 ↩︎

你可能感兴趣的:(Python,计算机,机器视觉,图像处理,图像金字塔,高斯金字塔,拉普拉斯金字塔)