多分辨率分析—高斯金字塔与拉普拉斯金字塔

简介

对一副图像进行多分辨率分析有以下优势:1、某些分辨率可能检测不到的特性在不同的分辨率下可能会被检测到。比如对于一副图像上同时存在较小的和较大的物体,检测小的物体(对比度低)通常需要较高的分辨率。反之,检测大的物体就需要较小的分辨率。2、当对视频信号进行帧间滤波时,写出滤波器的差分方程,差分方程的输入是过去某几帧图像的信息。通常的做法时将图像分解到不同的分辨率,然后将不同分辨率的图像信息向量化成一维信号作为差分方程的输入。这样做的好处时可以大大减少噪声。

图像金字塔是一种简单有效的进行图像多分辨率分析的手段,下图显示了一个四层图像金字塔的简单系统。

假设一幅图像的原始像素是n*n,对这幅图像进行下采样就是在原图的基础上每隔一个样本就丢弃一个样本,那么就会得到一个像素大小为n/2*n/2的新图。

图像的上采样刚好与上图相反,这个过程直接通过在原图的基础上每一个样本后插入0,从而达到图像尺寸的2倍放大。当然,直接插入0仅仅是增加了图像的尺寸,同时会引入了噪声。可以通过选择内插函数来代替对图像直接进行0插值的处理方式。

下面显示了两种常见的图像金字塔模型,高斯金字塔和预测残差金字塔。

有上图可知,高斯金字塔是指在对图像进行下采样的时候,进行了高斯低通滤波。其中,高斯滤波器也可以换成其他的图像处理方式,比如:进行领域滤波则输出平均金字塔;不进行滤波而直接进行下采样则产生采样金字塔。

拉普拉斯金子塔就是预测残差金字塔,下面简述其形成过程:假设第k层的输入图像是256 * 256 p ,那么经过下采样以及高斯滤波后形成的第k+1层的高斯图像是128 * 128 p。然后通过上采样及插值函数插值后,会形成一个256 * 256 p的预测图像。显然,插值后的预测图像会和输入的原图有一定的差别。

下图展示了这之间的差别:

插值图像和原图的差别可以通过图像的减法显示出来,因为预测图像是在低分率图像通过插值形成的。其与原图的差值就是原图和其进行低通滤波后的差值,也就是图像直接进行高通滤波后的情况,差值图像必然显示的是图像的高频成分:即图像的细节轮廓部分。

下图显示了第一幅预测残差图像:

既然预测残差图像或者叫其为差值图像是图像的高频部分,可以直接将原图通过高通滤波器观察其输出与预测残差图像的区别。

下图显示了图像直接通过拉普拉斯高通滤波后的输出:

可见,经过拉普拉斯滤波器后的图像和预测残差的图像有一定的相似性。通过选择滤波器的通阻带频率必然会使得预测残差图像和高通图像具有更大的相似度。当把所有的预测残差图像用金子塔的形式展现出来时,预测残差金字塔又称之为拉普拉斯金字塔。

生成金字塔

下图显示了高斯金字塔与拉普拉斯金字塔生成:

高斯金字塔:

拉普拉斯金字塔:

示例代码

  • demo.m

    clc;
    clear;
    close all;img=imread('timg.jpg');
    [m,n]=size(img);if size(img,3)==3  img = rgb2gray(img);
    end  gauss_pyr=gauss_pyramid2(img,5);  % for i=1:length(gauss_pyr)
    %    figure;imshow(gauss_pyr{i});
    % end   for i=1:length(gauss_pyr) -1          %获得残差图像,i级预测残差imgn{i}=gauss_pyr{i} - expand(gauss_pyr{i+1});  endfor i=1:length(imgn)  figure;imshow(imgn{i});
    end
    
  • gauss_pyramid2.m

    function pyr = gauss_pyramid2(I,nlev)  pyr = cell(nlev,1);
    pyr{1} = I;
    G_LOWER = I;  f = [0.05 0.25 0.4 0.25 0.05];
    f = f'*f;  for l = 2:nlev     G_LOWER=G_LOWER(1:2:size(G_LOWER,1)-1,1:2:size(G_LOWER,2)-1); %downsample     pyr{l}=imfilter(G_LOWER, f, 'replicate');
    end  end
    
  • expand.m

    function re=expand(img)%双三次内插img = imresize(img, 2, 'bicubic');re = img;
    end
    

多分辨率分析—高斯金字塔与拉普拉斯金字塔相关推荐

  1. 图像金字塔:高斯金字塔vs拉普拉斯金字塔

    文章目录 一.图像金字塔的定义 二.高斯金字塔的计算 三.拉普拉斯金字塔的计算 一.图像金字塔的定义 图像金字塔是图像中多尺度表达的一种,用多分辨率来解释图像. 金字塔的底部是待处理图像的高分辨率表示 ...

  2. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  3. 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  4. 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码

    图像金字塔是通过多个分辨率表示图像的一种有效且简单的结构. 一个图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像.图像金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率表示. 图像金字塔 ...

  5. OpenCV中的图像金字塔(高斯金字塔、拉普拉斯金字塔)

    最近在看关于数字图像的知识点,目前在图像金字塔部分,实在是懒得用手作笔记了,就以其中比较出名的"高斯金字塔"和"拉普拉斯金字塔"为例,基于OpenCV的源代码作 ...

  6. python --opencv图像处理金字塔(高斯金字塔、拉普拉斯金字塔)

    引言 前面的文章中,我们有用过图像方法或者缩小的函数 resize() ,这个函数既可以放大图像,也可以缩小图像,其中: 缩小图像:一版使用 CV_INETR_AREA (区域插值)来插值. 放大图像 ...

  7. 【C++】高斯金字塔和拉普拉斯金字塔原理和实现

    [C++]高斯金字塔和拉普拉斯金字塔原理和实现 图像中各个像素与其相邻像素之间的有很强的相关性,包含的信息也十分丰富,目标的尺寸有大有小,对比度有强有弱,此时就需要一个"显微镜"或 ...

  8. python 高斯金字塔_12、高斯金字塔、拉普拉斯金字塔与图片尺寸缩放(示例代码)...

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

  9. python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建

    高斯金字塔和拉普拉斯金字塔[1]在图像相关领域应用广泛,尤其是图像融合和图像分割方面.本文从理论和opencv实现两个方面对两种金字塔进行了介绍,并给出了二者的视觉效果. 1.高斯金字塔 在计算机视觉 ...

最新文章

  1. 自动驾驶又陷“派系”之争:该约束行人还是让车更完美
  2. C语言输入一个任意数求各位数的和
  3. 记一次oracle安装错误:INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'...
  4. Layui 数据表格table 重载reload 保留上次where条件的问题
  5. 计算机科学导论5版答案,5计算机科学导论习题答案.doc
  6. TPU原理技术与xPU
  7. Python笔记 之 居民身份证简单判断
  8. GitHub中文排行榜
  9. 230页10万字智慧城管系统整体建设方案
  10. 主管都在用项目管理Excel表格模板管理项目
  11. Mysql 给时间增加对应的时间
  12. NOI(OJ)编程基础篇
  13. 前端学习笔记之三PS
  14. 计算机桌面图标有阴影,电脑桌面图标标签出现阴影是怎么回事?桌面图标有背景解决方法...
  15. 20款优秀的免费 WordPress 企业主题
  16. 学习推荐!吴恩达 AI 课程及学习路线最全梳理
  17. 英国大学计算机科学硕博连读,曼彻斯特大学硕博连读
  18. 2.5维电子地图关键技术研究与实现
  19. 【建模干货】Mirauge3D让大面积倾斜空三不“跑崩”
  20. 视频播放移动端app网页前端模板源码下载

热门文章

  1. 程序退出代码0xC0000005,你的程序崩溃了吗?
  2. TypeScript详解十六:类型声明(declare)
  3. 机器学习之梯度下降(BGD,SGD, MBGD)
  4. 音乐推荐相关API接口
  5. CentOS离线安装rpm包
  6. python 剑指offer 学习之路(二)
  7. 今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊
  8. 神经网络编程用什么语言,gpu为什么适合神经网络
  9. latex常用数学符号整理
  10. vue滚动条事件(获取滚动条距离底部距离)