之前说过,可以利用polSARpro_4.0对原始的SAR数据进行处理,利用软件可以得到极化特征:散射角,熵和反熵,那么如何用程序求出这几个分量呢?以下是实现分解的程序。
clear all;
close all;
%得到相干矩阵T
row = 900;
col = 1024;
%path = 'E:\研究生阶段\PolSAR\实验仿真\数据\原始数据\T3Lee金门';
tic;
fid = fopen('T11.bin','rb');
T11 = fread(fid,[col,row],'float').'; fclose(fid);
fid = fopen('T22.bin','rb');
T22 = fread(fid,[col,row],'float').'; fclose(fid);
fid = fopen('T33.bin','rb');
T33 = fread(fid,[col,row],'float')'; fclose(fid);
fid = fopen('T12_real.bin','rb');
T12_real = fread(fid,[col,row],'float')'; fclose(fid);
fid = fopen('T12_imag.bin','rb');
T12_imag = fread(fid,[col,row],'float')'; fclose(fid);
T12 = T12_real + i * T12_imag;
fid = fopen('T13_real.bin','rb');
T13_real = fread(fid,[col,row],'float')'; fclose(fid);
fid = fopen('T13_real.bin','rb');
T13_imag = fread(fid,[col,row],'float')'; fclose(fid);
T13 = T13_real + i * T13_imag;
fid = fopen('T23_real.bin','rb');
T23_real = fread(fid,[col,row],'float')'; fclose(fid);
fid = fopen('T23_imag.bin','rb');
T23_imag = fread(fid,[col,row],'float')'; fclose(fid);
T23 = T23_real + i * T23_imag;
toc;
tic;
for ii = 1:row
for jj = 1:col
T = [T11(ii,jj) T12(ii,jj) T13(ii,jj);T12(ii,jj)' T22(ii,jj) T23(ii,jj);...
T13(ii,jj)' T23(ii,jj)' T33(ii,jj)];
[VT,DT] = eig(T);
P1 = DT(1,1)/trace(DT);
P2 = DT(2,2)/trace(DT);
P3 = DT(3,3)/trace(DT);
alpha1 = acos(abs(VT(1,1)));
alpha2 = acos(abs(VT(1,2)));
alpha3 = acos(abs(VT(1,3)));
H(ii,jj) = -(P1*log(P1) + P2*log(P2) +P3*log(P3))/log(3);
alpha(ii,jj) = P1*alpha1 + P2*alpha2 + P3*alpha3;
A(ii,jj) = (DT(2,2) - DT(1,1))/(DT(2,2) + DT(1,1));
end
end
toc;
tic;
figure(1);imshow(H);
colormap(jet);colorbar;
title('Polarimetric Scattering Entropy');
figure(2);imshow(alpha);
colormap(jet);colorbar;title('alpha angle');
figure(3);imshow(abs(A));
colormap(jet);colorbar;title('A');
toc;