MATLAB Curvelet-4PCNN图像融合算法核心源码

本文介绍了一种基于PCNN(脉冲耦合神经网络)的图像融合方法,通过使用Curvelet变换分解图像,并采用特定参数设置下的PCNN进行融合处理。最终通过评估指标验证了融合效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


%% by Vincent 
path(path,'PCNN_toolbox/')
path(path,'FusionEvaluation/')
path(path,'fusetool/')
%%
%Low_Coeffs_Rule='PCNN'; %'ave','PCNN','SF-PCNN'
%High_Coeffs_Rule='PCNN'; %'max','PCNN','SF-PCNN'
%
%% Parameters for Curvelet
im1=double(imread('lena_1.png')); 
im2=double(imread('lena_2.png')); 
im3=double(imread('lena_3.png')); 
im4=double(imread('lena_4.png')); 
im1=im1(:,:,1); 
im2=im2(:,:,1); 
Im3=im3(:,:,1); 
Im4=im4(:,:,1); 
%% Parameters for PCNN
Para.iterTimes=200;
Para.link_arrange=3;
Para.alpha_L=0.06931;% 0.06931 Or 1
Para.alpha_Theta=0.2;
Para.beta=3;% 0.2 or 3
Para.vL=1.0;
Para.vTheta=20;
%%
disp('Decompose the image via curvelet ...')
yA = fdct_wrapping(im1,1,2); 
yB = fdct_wrapping(im2,1,2);
yC = fdct_wrapping(im1,1,2); 
yD = fdct_wrapping(im2,1,2); 
n = length(yA);

%% Initialized the coefficients of fused image
Fused=yA;

for l = 1:n
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    for d = 1:length(yA{l})
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        Ahigh = yA{l}{d};
        Bhigh = yB{l}{d};
        Chigh = yC{l}{d};
        Dhigh = yD{l}{d};
       [Abeta,Bbeta] = weighting(yA{l}{d},yB{l}{d});
       [Cbeta,Dbeta] = weighting(yC{l}{d},yD{l}{d});
       Fused{l}{d} = Four_PCNN(Ahigh, Bhigh,Chigh,Dhigh,Abeta,Bbeta,Cbeta,Dbeta);      
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    end
end
%=============================================
f_im = real(ifdct_wrapping(Fused,1)); 
disp('Reconstruct is ended...')
%%
Fusion=Fusion*255;
Fusion(Fusion<0)=0;
%disp('F>255')
Fusion(Fusion>255)=255;
Fusion=round(Fusion);
%%
Eval=Evaluation(double(ori_A),double(ori_B),Fusion,256);
disp(Eval)
%%


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值