文章目录

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

图像金字塔:概念和实现

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

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

1. 图像金字塔的概念

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

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

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

我们设图像金字塔的基础层级(最底层)为 J J J,其尺寸为 2 J × 2 J 或 N × N 2^J\times2^J 或 N\times N 2J×2J或N×N,其中 J = l o g 2 N J=log_2 N J=log2​N。顶层层级为0,大小为 1 × 1 1\times 1 1×1,即单个像素。那么一般来说,图像金字塔中的层级和尺寸的关系为: j = l o g 2 n , j=log_2n, j=log2​n,其中, 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=J−P,…,J−1,J,其中 1 ≤ P ≤ J 1\leq P\leq J 1≤P≤J。

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​)≤34​N2

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


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解析(一)建立高斯金字塔 ↩︎

图像金字塔:概念及实现相关推荐

  1. OpenCV图像处理学习十三,图像金字塔——高斯金字塔和拉普拉斯金字塔

    一.图像金字塔概念 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 . 一个图像金字 ...

  2. OpenCV+python:图像金字塔

    1,图像金字塔的概念 图像金字塔是一种以多分辨率来解释图像的有效但概念简单的结构.应用于图像分割,机器视觉和图像压缩.一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图 ...

  3. 滤波、漫水填充、图像金字塔、图像缩放、阈值化

      imgpro 组件是 Image 和 Process 这两个单词的缩写组合,即图像处理模块,这个模块包含了如下内容: 文章目录 1.线性滤波:方框滤波.均值滤波.高斯滤波 1.1 平滑处理 1.2 ...

  4. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结

    我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统来说的话,可以使用OpenCV为我们提供的如下两种方式: <1> resize函数.这是最直接的方式, &l ...

  5. OpenCV3.0中的图像金字塔与图片尺寸缩放

    图像金字塔是图像中多尺度表达的一种,最主要用于图像分割,是一种以多分辨率来解释图像的有效但概念简单的结构.一幅图像的金字塔式一系列以金字塔形状排列的,分辨率逐步降低且来源于同一张原始图的图像集合.其通 ...

  6. 图像处理理论(二)——形态学、边缘检测、图像金字塔

    http://antkillerfarm.github.io/ 膨胀与腐蚀(Dilation & Erosion) 腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分.膨胀就是图像中的高亮 ...

  7. OpenCV_04 几何变换:图像缩放+图像平移+图像旋转+仿射变换+透射变换+图像金字塔

    1 图像缩放 缩放是对图像的大小进行调整,即使图像放大或缩小. API cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR) 参 ...

  8. python+OpenCV图像处理(九)图像金字塔

    图像金字塔        图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步 ...

  9. OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()

    OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...

最新文章

  1. mysql优化零基础_MySQL8数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
  2. 干货丨一文看懂什么是知识图谱!
  3. A标签的href设置为#代表什么意思?
  4. java split
  5. 内联脚本被视为是有害的_数据类被认为有害
  6. IT人终于把自己熬成了民工
  7. c++ 禁止 unsigned 和 signed 转换_令人头疼的C++复杂的类型转换,我们如何来攻克?我来让你头脑清醒...
  8. Python 字典或JSON模拟数据库的增删改查
  9. 基于Java开发的学校信息管理系统的设计与实现(含论文及毕业设计源码、数据库文件)
  10. 有什么办法可以让微信群二维码永久有效?这类的二维码生成器怎么制作?
  11. 高速串行总线技术发展与应用分析
  12. HDU 6080 度度熊保护村庄(计算几何+最小环-Floyd)
  13. win7计算机共享设置密码,如何为Win7旗舰系统的共享文件夹设置密码
  14. 骇客学堂:网络入侵检测初步探测方法
  15. CDD文件——CANdelaStudio
  16. 一个由两个长的如此相像的字引起的问题
  17. 了解源代码管理工具——Github
  18. 【2012级新生请猛击】NEW COMER FIRST BLOOD 完全题解及代码
  19. uni-app使用第三方UI组件库的引入方式(ThorUI)
  20. 百度地图切图工具的应用实例

热门文章

  1. 项目实战 航班飞行网图分析
  2. 弘辽科技:淘宝订单编号会透露个人信息吗?淘宝如何查看订单编号
  3. ionic3开发Android相关资料
  4. Python学习 —— open()函数
  5. 计算机音乐播放器设置,Win7系统下设置默认音乐播放器的两种方法
  6. 腾讯云服务器使用ssh密钥登录--个人常遇到问题均解决
  7. 什么是JS面向对象?
  8. 个人计算机革命(计算机历史)
  9. 无人驾驶车辆运动规划方法综述
  10. Linux设置环境变量