【图像融合】基于curvelet变换图像融合matlab代码
【图像融合】基于curvelet变换图像融合matlab代码
TT_Matlab
每天分享一点Matlab资料,一起成长进步。需要定制程序添加qq1575304183
1 简介
针对Curvelet分解的不同频率域,分别讨论了低频系数和高频系数的选择原则.在选择低频系数时,定义了局部区域标准方差,采用了"选择"与"平均"相结合的系数选择方案;在选择高频系数时,充分利用Curvelet变换具有方向性的优点,提出了Curvelet域方向对比度的概念,并给出了基于方向对比度的系数选择方案.实验结果表明:本文所给出的融合算法能够很好地保留多幅源图像中的有用信息,得到多个目标聚焦都很清晰的图像.
2 部分代码
clc clear all close all % fdct_wrapping_demo_recon.m -- Partial curvelet reconstruction. X = imread ( ’imgwarp.bmp’ ); X2 = imread ( ’IR1022_3.bmp’ ); X1 = rgb2gray ( X ); % Forward curvelet transform disp ( ’Take curvelet transform: fdct_wrapping’ ); tic ; C1 = fdct_wrapping ( double ( X1 ), 0 , 2 ); toc ; tic ; C2 = fdct_wrapping ( double ( X2 ), 0 , 2 ); toc ; C = C1 ; %tic; C = fdct_wrapping(double(X),0,2,5,16); toc; for s = 1 : 2 for w = 1 : length ( C { s }) C { s }{ w } = 0.5 * C1 { s }{ w } + 0.5 * C2 { s }{ w }; end end for s = 3 : length ( C ) for w = 1 : length ( C { s }) C { s }{ w } = max ( C1 { s }{ w }, C2 { s }{ w }); end end disp ( ’Take inverse curvelet transform: ifdct_wrapping’ ); tic ; Y = ifdct_wrapping ( C , 0 , 256 , 320 ); toc ; Y = uint8 ( Y ); % subplot(1,3,1); colormap gray; imagesc(real(X1)); axis(’image’); title(’VI’); % subplot(1,3,2); colormap gray; imagesc(real(X2)); axis(’image’); title(’IR’); % subplot(1,3,3); colormap gray; imagesc(real(Y)); axis(’image’); title(’fusion’); %信息熵 figure ( 1 ) subplot ( 131 ) imshow ( X1 ); title ( ’融合前图1’ ) subplot ( 132 ) imshow ( X2 ); title ( ’融合前图1’ ) subplot ( 133 ) imshow ( Y ); title ( ’融合后’ ) imwrite ( Y , ’xiaobo1.bmp’ ); r1 = rmse ( X1 , Y ); %融合前图1和融合后的均方差 r2 = rmse ( X2 , Y ); %融合前图1和融合后的均方差 disp ([ ’融合前图1和融合后的均方差=’ , num2str ( r1 )]) disp ([ ’融合前图2和融合后的均方差=’ , num2str ( r2 )]) xinxi1 = xinxishang ( X1 ); %融合前图1信息熵 disp ([ ’融合前图1的信息熵=’ , num2str ( xinxi1 )]) xinxi2 = xinxishang ( X2 ); %融合前图2信息熵 disp ([ ’融合前图2的信息熵=’ , num2str ( xinxi2 )]) xinxi3 = xinxishang ( Y ); %融合前图3信息熵 disp ([ ’融合后图的信息熵=’ , num2str ( xinxi3 )]) tidu1 = ftidu ( X1 ); % %融合前图1梯度 disp ([ ’融合前图1的梯度=’ , num2str ( tidu1 )]) tidu2 = ftidu ( X2 ); % %融合前图2梯度 disp ([ ’融合前图2的梯度=’ , num2str ( tidu2 )]) tidu3 = ftidu ( Y ); % %融合后图梯度 disp ([ ’融合后图的梯度=’ , num2str ( tidu3 )])
3 仿真结果
4 参考文献
[1]李晖晖, 郭雷, and 刘航. "基于二代curvelet变换的图像融合研究." 光学学报 26.5(2006):6.
微信扫一扫赞赏作者
赞赏
发送给作者
人赞赏
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
-
Origin(Pro):学习版的窗口限制【数据绘图】 2020-08-07
-
如何卸载Aspen Plus并再重新安装,这篇文章告诉你! 2020-05-29
-
AutoCAD 保存时出现错误:“此图形中的一个或多个对象无法保存为指定格式”怎么办? 2020-08-03
-
OriginPro:学习版申请及过期激活方法【数据绘图】 2020-08-06
-
CAD视口的边框线看不到也选不中是怎么回事,怎么解决? 2020-06-04
-
教程 | Origin从DSC计算焓和比热容 2020-08-31
-
如何评价拟合效果-Origin(Pro)数据拟合系列教程【数据绘图】 2020-08-06
-
Aspen Plus安装过程中RMS License证书安装失败的解决方法,亲测有效! 2021-10-15
-
CAD外部参照无法绑定怎么办? 2020-06-03
-
CAD中如何将布局连带视口中的内容复制到另一张图中? 2020-07-03