您的位置:首页 > 编程语言 > MATLAB

图像拉普拉斯金字塔(laplacian pyramid)并从金字塔重建原图 matlab程序实现

2016-02-20 21:08 495 查看
<span style="font-size:18px;">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);</span>

下面是运行效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: