快乐虾

http://blog.csdn.net/lights_joy/

欢迎转载,但请保留作者信息

图像金字塔是图像中多尺度表达的一种,最初用于机器视觉和图像压缩。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步减少。且来源于同一张原始图的图像集合。其通过梯次向下採样获得。直到达到某个终止条件才停止採样。

金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。层级越高,则图像越小。分辨率越低。

普通情况下有两种类型的图像金字塔经常出如今文献和以及实际运用中。

他们各自是:

高斯金字塔  (  Gaussianpyramid): 用来向下採样,基本的图像金字塔

拉普拉斯金字塔 (Laplacianpyramid): 用来从金字塔低层图像重建上层未採样图像,在数字图像处理中也即是预測残差。能够对图像进行最大程度的还原,配合高斯金字塔一起使用。

两者的简要差别:高斯金字塔用来向下降採样图像,而拉普拉斯金字塔则用来从金字塔底层图像中向上採样重建一个图像。

图像金字塔中的向上和向下採样分别通过OpenCV函数 pyrUp 和 pyrDown 实现。

这里的向下与向上採样。是对图像的尺寸而言的(和金字塔的方向相反)。向上就是图像尺寸加倍,向下就是图像尺寸减半。

而假设我们按上图中演示的金字塔方向来理解,金字塔向上图像事实上在缩小。这样刚好是反过来了。

但须要注意的是。PryUp和PryDown不是互逆的。即PryUp不是降採样的逆操作。这样的情况下,图像首先在每一个维度上扩大为原来的两倍,新增的行(偶数行)以0填充。

然后给指定的滤波器进行卷积(实际上是一个在每一个维度都扩大为原来两倍的过滤器)去预计“丢失”像素的近似值。

用Python试试:

# 图像金字塔
src = cv2.imread('f:\\tmp\\cotton.jpg')
cv2.imshow('src', src) # 下採样
dst = cv2.pyrDown(src)
cv2.imshow('dst', dst) # 上採样
src1 = cv2.pyrUp(dst)
cv2.imshow('src1', src1) cv2.waitKey()

我们的原始图像:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

下採样后的图像:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

还原后的图像:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图像明显的模糊化。



Python图像处理(16):图像金字塔的更多相关文章

  1. 【python图像处理】图像的缩放、旋转与翻转

    [python图像处理]图像的缩放.旋转与翻转 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图 ...

  2. Python图像处理丨图像腐蚀与图像膨胀

    摘要:本篇文章主要讲解Python调用OpenCV实现图像腐蚀和图像膨胀的算法. 本文分享自华为云社区<[Python图像处理] 八.图像腐蚀与图像膨胀>,作者: eastmount . ...

  3. 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效

    摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...

  4. python实现高斯图像金字塔

    一,定义 图像金字塔:同一图像的不同分辨率的子图集合,其生成方式有向上取样和向下取样.向下取样是从G0采样形成分辨率较低的G1,G1再采样形成分辨率较低的G2......,就构成了一个金字塔.向下取样 ...

  5. python实现拉普拉斯图像金字塔

    一,定义 二,代码: 要求:拉普拉斯金字塔时,图像大小必须是2的n次方*2的n次方,不然会报错 1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 #高斯金 ...

  6. Python图像处理:图像腐蚀与图像膨胀

    图像的膨胀(Dilation)和腐蚀(Erosion)是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域.其中膨胀类似于“领域扩张”,将图像中的高亮区域或白色部分进行扩张,其运行结果图比原 ...

  7. Python图像处理丨认识图像锐化和边缘提取的4个算子

    摘要:图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础. 本文分享自华为云社区<[Python图像处理] 十七.图像锐化与边缘检测之Rober ...

  8. Python 图像处理 OpenCV (14):图像金字塔

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  9. Python 图像处理 OpenCV (16):图像直方图

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

随机推荐

  1. bzoj 1500 修改区间 splay

    内个我也不知道哪儿不对,TLE了,说说思路吧 其实思路也没什么说的,就是裸的splay,对于最后一个操作 我们记下每个区间的最长前缀,最长后缀,那么最长子序列就是 前缀,后缀,左子树的后缀+右子树的前 ...

  2. CSS3 3D 转换

    CSS3 允许您使用 3D 转换来对元素进行格式化. 在本章中,您将学到其中的一些 3D 转换方法: rotateX() rotateY() rotateX() 方法 rotateX()方法,围绕其在 ...

  3. redis有string,hash,list,sets.zsets几种数据类型

    1.string数据类型 可包含任何数据,是二进制安全的,比如图片或者序列化的对象set key valueset name hkset age 20get name 得到"hk" ...

  4. [Leetcode Week5]Word Ladder

    Word Ladder题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/word-ladder/description/ Description Give ...

  5. Python selenium.webdriver.chrome.options.Options() Examples

    The following are 27 code examples for showing how to use selenium.webdriver.chrome.options.Options( ...

  6. Java 5大内存区域和对象的创建过程

    1.Java运行时数据区 方法区,堆线程共享.虚拟机栈,本地方法栈和程序计数器线程私有. 2.程序计数器(PC计数器) 占用较小的一块内存空间,当执行Java方法时记录正在执行的虚拟机字节码指令地址, ...

  7. 《锋利的JQuery》读书要点笔记4——表格表单的操作

    第五章 jQuery对表单,表格的操作以及更多应用 这章主要以一些具体案例讲解了jQuery对表单,表格的常用操作,以及一些常见的jQuery应用,用到的都是上几章说的东西.下面就以具体的案例来展开. ...

  8. hdu4240 求一条流量最大的路/(此题网上百分之90以上算法是错误的)

    题意:求最大流/一条流量最大的路的流量.(此题HDU上数据水,下面俩种错误的都能过....) 思路1;每次增广的时候更新流量,保存最大的那条.  错误性:每次更新,有可能最大的那条流量是前几次已经增广 ...

  9. quartz 配置运行

    这篇文章是对quartz 2.2.1进行配置 分为spring 整合版本和QuartzInitializerServlet整合版本 首先是QuartzInitializerServlet整合版本 主要 ...

  10. Docker容器进入的4种方式(转)

    这个文章不错,几种方式及使用范围都讲得清楚. 另外,还有一个文章说了为什么docker中并不合适ssh服务安装的情况. 我现在也是用第四种方式, docker exec -it [docker容器ID ...