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

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

简介

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

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

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

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

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

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

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

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

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

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

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

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

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

生成金字塔

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

高斯金字塔:
GP

拉普拉斯金字塔:
LP

示例代码

  • 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});  
     end
    
    for 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
    
  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值