下面我们来一个图像金字塔的示意图:
下面我们来看一个创建高斯金字塔和预测残差金字塔的一个简单系统
下图展示了这之间的差别
既然有差别那么我们就可与算出具体的差别是多少,同时我们也可以用图像把这种差别表示出来。
上图其实就是对图像进行高通滤波的结果。试想,内插函数其实有低通的效果,而用原图减去图像的低频成分自然就是图像的高频部分啦。
对于上图可能还有人会想到图像空间锐化滤波的拉普拉斯滤波器。下面我们看看原图经过拉普拉斯滤波器后的图像是什么样子的。
可见,经过拉普拉斯滤波器后的图像和预测残差的图像有一定的相似性。当我们把所有的预测残差图像用金子塔的形式展现出来时,预测残差金字塔又称之为拉普拉斯金字塔。
下面是用matlab得到的高斯金字塔与拉普拉斯金字塔的结果:
高斯金字塔:
拉普拉斯金字塔:
demo.m
clc;clear all;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}); endgauss_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 endexpand.m
function re=expand(img) %双三次内插 img = imresize(img, 2, 'bicubic'); re = img;end新闻热点
疑难解答