clear
inputPath ='D:\数字图像处理\研究方向\Filter Smooth\images\';
filename = [inputPath 'pai.png'];
I = im2double(imread(filename));
if size(I,3)==3
I=rgb2gray(I);
end
nlev=4;
sigma=1;
sigma_r=0.1;
f = [.05, .25, .4, .25, .05];
f = f'*f;
%构建拉普拉斯金字塔
pyr = cell(nlev,1);
J = I;
for l = 1:nlev-1
J_gauss = imfilter(J,f,'replicate');
J_gauss_down = J_gauss(1:2:size(J_gauss,1)-1,1:2:size(J_gauss,2)-1); %downsample
J_gauss_high = imresize(J_gauss_down,[size(J_gauss,1) size(J_gauss,2)],'bilinear');
pyr{l} = J-J_gauss_high;
J=J_gauss_down;
end
pyr{nlev}=J_gauss_down;
% for i=1:length(pyr)
% figure;imshow(mat2gray(pyr{i}));
% end
%从金字塔重建图像
out = pyr{nlev};
for l = nlev-1 : -1 : 1
out = pyr{l} + imresize(out,[size(pyr{l},1) size(pyr{l},2)],'bilinear');
end
figure;imshow([mat2gray(out),I]);title('重建之后图像,原图');
% figure;imshow(I);
下面是运行效果: