matlab 图像融合

matlab图像融合

        

[r,c]=size(y1);            %根据低频融合算法进行图像融合

for i=1:r            %首先取两幅源图像相应的小波分解系数绝对值最大者的值作为融合图像的分解系数

    for j=1:c

        if( abs(y1(i,j)) >= abs(y2(i,j)) )

            y3(i,j)=y1(i,j);

        elseif( abs(y1(i,j)) < abs(y2(i,j)) )

            y3(i,j)=y2(i,j);

        end

%    y3(i,j)=max(abs(y1(i,j)) , abs(y2(i,j)) );  % 这行代码是错误的,取了绝对值而非实际值

    end

end

 

(2)低频融合的对象

        低频融合的对象是N级分解后图像的LL-N子图像,相应的程序代码为:

 

LLa=y1(1:r/(2^dim),1:c/(2^dim));    %调用lowfrefus函数对低频部分的小波分解系数进行融合

LLb=y2(1:r/(2^dim),1:c/(2^dim));

y3(1:r/(2^dim),1:c/(2^dim))=lowfrefus(LLa,LLb);

 

(3)低频融合策略的程序代码

        这一部分程序代码的实现难度不大,根据算法原理中列出的公式可以很快写出相应的代码。不过有些细节问题还是要花心思处理,比如区域大小的确定、区域边界与图像边界的关系、区域中心与区域中各点的权值确定、区域中心在原始图像中的具体位置等等。

 

function y = lowfrefus(A,B);

% 函数 Y=LOWFREFUS(A,B) 对输入的两个小波分解系数矩阵,根据低频融合算法,得出融合图像的低频小波分解系数

你可能感兴趣的:(图像处理,小波)