www.pudn.com > DWTsimplefusion.rar > Fuse_DWB.m, change:2006-04-25,size:2133b


clear 
[imA,map1] = imread('A.tif'); 
M1 = double(imA) / 256; 
[imB,map2] = imread('B.tif'); 
M2 = double(imB) / 256; 
 
 
zt= 4;  
wtype = 'haar'; 
%    M1 - input image A 
%    M2 - input image B 
%    wtype使用的小波类型 
%    Y  - fused image    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% 
%%  小波变换图像融合 
%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%   小波变换的绝对值大的小波系数,对应着显著的亮度变化,也就是图像中的显著特征。所以,选择绝对值大 
%%   的小波系数作为我们需要的小波系数。【注意,前面取的是绝对值大小,而不是实际数值大小】 
%% 
%%   低频部分系数采用二者求平均的方法 
%% 
%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
[c0,s0] = wavedec2(M1, zt, wtype);%多尺度二维小波分解 
 
[c1,s1] = wavedec2(M2, zt, wtype);%多尺度二维小波分解 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%  后面就可以进行取大进行处理。然后进行重构,得到一个图像 
%%  的小波系数,然后重构出总的图像效果。 
%%  取绝对值大的小波系数,作为融合后的小波系数 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
KK = size(c1); 
Coef_Fusion = zeros(1,KK(2)); 
Temp = zeros(1,2); 
Coef_Fusion(1:s1(1,1)) = (c0(1:s1(1,1))+c1(1:s1(1,1)))/2;  %低频系数的处理 
                     %这儿,连高频系数一起处理了,但是后面处理高频系数的时候,会将结果覆盖,所以没有关系 
 
   %处理高频系数 
    MM1 = c0(s1(1,1)+1:KK(2)); 
    MM2 = c1(s1(1,1)+1:KK(2)); 
    mm = (abs(MM1)) > (abs(MM2)); 
  	Y  = (mm.*MM1) + ((~mm).*MM2); 
    Coef_Fusion(s1(1,1)+1:KK(2)) = Y; 
    %处理高频系数end 
  
 %重构 
 Y = waverec2(Coef_Fusion,s0,wtype); 
 
%显示图像   
subplot(2,2,1);imshow(M1); 
colormap(gray); 
title('input2'); 
axis square   
  
subplot(2,2,2);imshow(M2); 
colormap(gray); 
title('input2'); 
axis square   
 
subplot(223);imshow(Y,[]); 
colormap(gray); 
title('融合图像'); 
axis square; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%