天天看點

【IHS+稀疏表示】基于IHS小波變換和稀疏表示相結合的遙感圖像融合算法matlab仿真1.軟體版本2.本算法理論知識3.部分源碼4.仿真結論

1.軟體版本

matlab2013b

2.本算法理論知識

【IHS+稀疏表示】基于IHS小波變換和稀疏表示相結合的遙感圖像融合算法matlab仿真1.軟體版本2.本算法理論知識3.部分源碼4.仿真結論

       小波變換具有多尺度特性,其時域和頻域均 具有表征信号局部特性的能力和多分辨率分析的 特點。在低頻時具有高的頻譜分辨率,在高頻 時具有低的頻譜分辨率,因而能有效地從信号中 提取資訊。通過小波變換可将圖像分解為一個低 頻分量和一系列的高頻分量,其中低頻分量為近 似圖像,高頻分量為圖像的細節資訊,如邊緣、亮 線、區域邊界等。 Hu 等人[4]提出基于稀疏表示和 IHS 變換的遙 感圖像融合,基本思路是對多光譜圖像進行 IHS 變 換後對 I 分量和全色圖像進行稀疏表示,之後用絕 對值取大的融合規則對其稀疏系數進行融合,重構 I 分量,最後進行 IHS 逆變換,得到融合圖像。 由于 IHS 變換具有嚴重的光譜失真,考慮将小 波變換與 IHS 變換相結合。如圖 1 算法流程所示, 首先對多光譜圖像進行 IHS 變換,得到對應的 I、H、 S 分量,對與光譜特性不相關的 I 分量進行 SFIM 運 算,将空間細節資訊加入到 I 分量中,這樣能盡可能 少地影響光譜資訊,并通過 SFIM 模型将空間細節 資訊合理、有效地調制到多光譜圖像亮度分量中。 然後對運算後的 I 分量和全色圖像進行小波變換, 得到對應的低頻和高頻系數,分别對高頻和低頻系 數進行融合,最後進行小波逆變換和 IHS 變換得到 融合圖像。

3.部分源碼

close all;
clear all;
clc

rng(1);

I4 = imread('PAN.jpg');%讀取并顯示圖像
I2 = imread('MS.jpg'); 
%figure;subplot(2,3,1);imshow(I4);title('the origin image 1');subplot(2,3,2);imshow(I2);title('the origin image 2');
step=1; 
Dsize=256; u2=zeros(3,1);v12=zeros(3,1);
AA=[1/sqrt(3),1/sqrt(3),1/sqrt(3);       
    1/sqrt(6),1/sqrt(6),-2/sqrt(6);                   
    1/sqrt(2),-1/sqrt(2),0];
BB=[1/sqrt(3),1/sqrt(6),1/sqrt(2);
    1/sqrt(3),1/sqrt(6),-1/sqrt(2);                    
    1/sqrt(3),-2/sqrt(6),0];
I1=(I4);
 [I3,v1,v2]=ihs(I2,AA);%ihs變換    
 
 
[V1t_block] = getblock_new(I3, 3000,8,8,'random',1); %随機分塊
[V2t_block] = getblock_new(I1, 3000,8,8,'random',1);
V_train = [V1t_block,V2t_block];
D0 = Initial_Dictionary(64,Dsize); 
%load('D.mat');%load('V_train.mat');
D = train_Dictionary_new( V_train ,D0,'OMP', 'K-SVD',0.01);% 訓練字典 
clear V1t_block V2t_block V_train;
[V1_block] = getblock_new(I3, 1000,8,8,'sliding',step);  %分塊并用omp求稀疏系數
[l, m] = size(V1_block);
[h,w] = size(D);
a1 = zeros(w,m);
for i = 1:m
    a1(:,i) = solveRepresentation(100,D, V1_block(:,i),'denoise', 0.001, 'OMP');  
end
clear V1_block;

[V2_block] = getblock_new(I1, 1000,8,8,'sliding',step); 
[l, m] = size(V2_block);
a2 = zeros(w,m);
for i = 1:m
    a2(:,i) = solveRepresentation(100,D, V2_block(:,i),'denoise', 0.001, 'OMP');  
end
clear V2_block;



a_f = fusion_criterion(a1,a2,'max');
X_f= D*a_f; 
[height,width]=size(I1);
img_f = showImage_new(X_f,height,width,'sliding',step);
%
RGB=ihs1(I1,img_f,BB,v1,v2);%逆變換
%subplot(2,3,3);figure;%重構并顯示圖像
imshow(RGB);
title('融合圖像');

%資訊熵
entropy = func_entropy(RGB(:,:,3));
entropy
%邊緣強度
outval = edge_intensity(RGB(:,:,3)); 
outval
%平均梯度
outval = avg_gradient(RGB(:,:,3));  
outval

           

4.仿真結論

資訊熵 邊緣強度 平均梯度
1原稀疏表示IHS 7.1354 94.8276 9.3842
2IHS改進 6.3183 76.2175 7.8215
3 IHS改進的基礎上進行修改完善 7.0371 96.4255 9.4937

1

【IHS+稀疏表示】基于IHS小波變換和稀疏表示相結合的遙感圖像融合算法matlab仿真1.軟體版本2.本算法理論知識3.部分源碼4.仿真結論

2

【IHS+稀疏表示】基于IHS小波變換和稀疏表示相結合的遙感圖像融合算法matlab仿真1.軟體版本2.本算法理論知識3.部分源碼4.仿真結論

 3

【IHS+稀疏表示】基于IHS小波變換和稀疏表示相結合的遙感圖像融合算法matlab仿真1.軟體版本2.本算法理論知識3.部分源碼4.仿真結論

 A28-53

繼續閱讀