how can I implement image fusion algorithm by using curvelet transform?
Show older comments
Image fusion is the process of combining two images to form only one image which should contain information of both the images.
Answers (1)
surya mahajan
on 9 Feb 2020
0 votes
clearall;
closeall;
%%
[filename filepath]=uigetfile('*.jpg','select the input chromatic image');
filedir1=strcat(filepath,'\',filename);
[filename filepath]=uigetfile('*.jpg','select the input spectral image');
filedir2=strcat(filepath,'\',filename);
im1=imresize(imread(filedir1),[512,512]);
im2=imresize(imread(filedir1),[512,512]);
figure,imshow(im2);
title('inputimage 1-chromatic');
figure,imshow(im2);
tittle('input image 2-multi spectral');
no_of_level=3;
curve_wavelet_2d=CURVELET_PROCESS(im1,1,no_of_level);
for k3=1:3
curve_wavelet_3d=CURVELET_PROCESS(im2(:,:,k3),1,no_of_level);
end
%%
fork5=1:3
curv_coeff=curve_wavelet_3d{k5};
fork6=1:lenght(curv_coeff)-2
tmp_coeff=curv_coeff{k6};
tmp_2dcoeff=curve_wavelet_2d{k6};
for k7=1:length(tmp_coeff)
coeff3d=temp_coeff{k7};
coeff2d=tmp_2dcoeff{k7};
locl=find(coeff2d<1);
coeff3d(locl)=coeff2d(locl);
res..coeff3{k7}=coeff3d;
end
res..coeff2{k6}=res_coeff3;
res_coeff3=[];
end
res_coeff2{k6+1}=curv_coeff{k6+1};
res_coeff2{k6+2}=curv_coeff{k6+2};
final..res..coeff{k5}=res_coeff2;
end
fork10=1:3
imgx=INVERSE_CURVELET_PROCESS(FINAL_RES_COEFF{K10});
imgout(:,:,k10)=imgx;
end
figure,imshow(uint8(imgout));
tittle('resultimage');
%%
resout=uint8(imgout);
for km=1:3
disp(strcat('band--',num2str(km)))
mseerroe=mean(mean(im2(:,:,km)-uint8(imgout(:,:,km))).^2));
MSE_VAL=mseerroe
PSNR_VAL=20*log10(255/mseerroe)
ENTROPY_VAL=entropy_func(double(resout(:,:,km)))
f1img=im2(:,:,km);
f2img=resout(:,:,km);
corrval=xcorr(f1img(:),f2img(:));
CROSS_CORRELATION=max(corrval)
[fx,fy]=gradient(double(resout(:,:,km)));
AVERAGE_GRADIENT_VAL=mean(mean(mean(sqrt((fx.^2+fy.^2)/2))))
UIQI=UniversalImageQualityIndex(double(im2(:,:,km)),double(resout(:,:,km)))
end
2 Comments
Bhakti Raul
on 3 Jul 2020
could find CURVELET_PROCESS and INVERSE_CURVELET_PROCESS functions anywhere
jyoti khandelwal
on 3 Aug 2021
defination of curvelet and inverse curvelet fuction is missing
Categories
Find more on Denoising and Compression in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!