当前位置 : 主页 > 编程语言 > python >

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 高分辨率的多光谱图像应用广泛,比如变化监测,目标识别,场景解译.通常,商用光学卫星能够同时提供高空间分辨率的全色图像和低分辨率的多光谱图像.物理条件的限制使得单一传


1 简介

高分辨率的多光谱图像应用广泛,比如变化监测,目标识别,场景解译.通常,商用光学卫星能够同时提供高空间分辨率的全色图像和低分辨率的多光谱图像.物理条件的限制使得单一传感器无法获得高质量的多光谱图像.于是,利用全色图像的细节来提高多光谱图像的空间分辨率这一思路受到了广大学者的关注.全色和多光谱图像融合的目标在于同时提高空间分辨率和减小光谱失真.实际上,由于全色图像的加入,融合图像的空间分辨率可以得到显著提高,但是,光谱畸变也会随之产生. 稀疏表示理论,作为一种新的信号表示方法,已经应用在许多图像处理领域.采用过完备字典的稀疏表示能够使分解系数更稀疏,更能反映信号的本质特征和内在结构.针对全色和多光谱图像融合这一难题,本文提出了基于稀疏表示的融合方法.

2 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close all;clear all;
setup;
Verbose='on';
generate=1;subMeth='PCA';FusMeth='Sparse';
scale=1;SNR_R=inf;seed=1;
%% Generate the data
[name_image,band_remove,band_set,nr,nc,N_band,nb_sub,X_real,XH,XHd,XHd_int,XM,VXH,VXM,psfY,psfZ_unk,...
sigma2y_real,sigma2z_real,SNR_HS,SNR_MS,miu_x_real,s2_real,P_inc,P_dec,eig_val]=Para_Set(seed,scale,subMeth,SNR_R);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Sparse fusion consists three parts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Step 1: Learn the rough estimation
learn_dic=1;train_support=1;Para_Prior_Initial;
X_source=RoughEst(XM,XH,XHd,psfY,nb_sub,P_dec);
%% Step 2: Learn the dictionary
[time_LD,Dic,supp]=Dic_Para(X_source,P_inc,learn_dic,train_support,X_real,0);
%% Step 3: Alternating optimization
[HSFusion.(FusMeth),Costime,diff_X,RMSE_sub,RMSE_org,tau_d_set,VXd_dec]=AlterOpti(X_source,XH,XM,psfY,...
psfZ_unk,sigma2y_real,sigma2z_real,P_dec,P_inc,FusMeth,X_real,Dic,supp);
%% Evaluate the fusion results: Quantitative
[err_max.(FusMeth),err_l1.(FusMeth),err_l2.(FusMeth),SNR.(FusMeth),Q.(FusMeth),SAM_m.(FusMeth),RMSE_fusion.(FusMeth),...
ERGAS.(FusMeth),DD.(FusMeth)] = metrics(X_real,HSFusion.(FusMeth),psfY.ds_r);
fprintf('%s Performance:\n SNR: %f\n RMSE: %f\n UIQI: %f\n SAM: %f\n ERGAS: %f\n DD: %f\n Time: %f\n',...
FusMeth,SNR.(FusMeth),RMSE_fusion.(FusMeth),Q.(FusMeth),SAM_m.(FusMeth),ERGAS.(FusMeth),DD.(FusMeth),Costime.(FusMeth));
%% Display the fusion results: Qualitive
normColor = @(R)max(min((R-mean(R(:)))/std(R(:)),2),-2)/3+0.5;
temp_show=X_real(:,:,band_set);temp_show=normColor(temp_show);
figure(113);imshow(temp_show);title('Groundtruth')
temp_show=XHd_int(:,:,band_set);temp_show=normColor(temp_show);
figure(114);imshow(temp_show);title('HS image')
temp_show=mean(XM,3);temp_show=normColor(temp_show);
figure(115);imshow(temp_show);title('MS image')
temp_show=HSFusion.(FusMeth)(:,:,band_set);temp_show=normColor(temp_show);
figure(116);imshow(temp_show);title(['Fused image-' FusMeth])
name=[mat2str(clock) FusMeth '.mat'];save(name);

3 仿真结果

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_稀疏表示

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_稀疏表示_02

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_多光谱图像_03

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_稀疏表示_04

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_稀疏表示_05

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_图像处理_06

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_图像处理_07

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_多光谱图像_08

4 参考文献

[1]肖新耀. "基于稀疏表示的全色和多光谱图像融合方法的研究." 电子所博硕士学位论文 (2015).

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_图像处理_09

【图像融合】基于稀疏表示多光谱图像融合含Matlab源码_稀疏表示_10

网友评论