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

来源:互联网 发布:html5 js弹出键盘事件 编辑:程序博客网 时间:2024/05/19 02:28


%% 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 Curveletim1=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 PCNNPara.iterTimes=200;Para.link_arrange=3;Para.alpha_L=0.06931;% 0.06931 Or 1Para.alpha_Theta=0.2;Para.beta=3;% 0.2 or 3Para.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 imageFused=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);              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    endend%=============================================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)%%


0 0
原创粉丝点击