小波图像融合的Matlab实现示例(添加图片演示080428)

本文详细介绍了如何使用Matlab实现一种基于低频融合策略的小波图像融合算法,包括高频带融合、低频融合对象的选择以及低频融合策略的程序代码。通过实例展示了算法的具体步骤,并给出了融合效果的图片示例。
摘要由CSDN通过智能技术生成

        前几天我们讨论了一种基于低频融合策略的小波图像融合算法(http://blog.csdn.net/chenyusiyuan/archive/2007/11/14/1883987.aspx),今天就来说说算法编程实现的几个细节问题。

(1)高频带的融合
        首先,高频系数融合均采用基于像素点绝对值取大的规则,这里要注意的是,比较的对象是两幅原始图像的像素点的绝对值,而融合后图像的像素点的取值是两幅原始图像像素点绝对值大的那一点的值,也就是说,要取绝对值大的那个点的实际值。故相应的Matlab程序为:

% I1,I2 为两幅原始图像
y1=mywavedec2(I1,dim);
y2=mywavedec2(I2,dim);

[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) 对输入的两个小波分解系数矩阵,根据低频融合算法,得出融合图像的低频小波分解系数

[row,col]=size(A);    % 求出分解系数矩阵的行列数
alpha=0.5;        % alpha是方差匹配度比较的阈值
for i=1:row        % 根据低频融合算法,先求出矩阵A,B中以点P为中心的区域方差和方差匹配度

  • 7
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 102
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 102
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值