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

来源:互联网 发布:云上贵州大数据 编辑:程序博客网 时间:2024/05/16 07:44
  1. <span style="font-size:18px;">clear  
  2. inputPath ='D:\数字图像处理\研究方向\Filter Smooth\images\';  
  3. filename = [inputPath 'pai.png'];  
  4. I = im2double(imread(filename));  
  5. if size(I,3)==3  
  6.     I=rgb2gray(I);  
  7. end  
  8.   
  9. nlev=4;  
  10. sigma=1;  
  11. sigma_r=0.1;  
  12.   
  13. f = [.05, .25, .4, .25, .05];  
  14. f = f'*f;  
  15.   
  16. %构建拉普拉斯金字塔  
  17. pyr = cell(nlev,1);  
  18. J = I;  
  19. for l = 1:nlev-1     
  20.     J_gauss = imfilter(J,f,'replicate');  
  21.     J_gauss_down = J_gauss(1:2:size(J_gauss,1)-1,1:2:size(J_gauss,2)-1); %downsample   
  22.     J_gauss_high = imresize(J_gauss_down,[size(J_gauss,1) size(J_gauss,2)],'bilinear');  
  23.     pyr{l} = J-J_gauss_high;  
  24.     J=J_gauss_down;  
  25. end  
  26. pyr{nlev}=J_gauss_down;  
  27.   
  28. for i=1:length(pyr)  
  29. %     figure;imshow(mat2gray(pyr{i}));  
  30. % end  
  31.   
  32. %从金字塔重建图像  
  33. out = pyr{nlev};  
  34. for l = nlev-1 : -1 : 1  
  35.     out = pyr{l} + imresize(out,[size(pyr{l},1) size(pyr{l},2)],'bilinear');  
  36. end  
  37.   
  38. figure;imshow([mat2gray(out),I]);title('重建之后图像,原图');  
  39. % figure;imshow(I);</span>  

下面是运行效果:

0 0
原创粉丝点击