全极化SAR的H/alpha、anistropy分解

来源:互联网 发布:centos 中文输入法 编辑:程序博客网 时间:2024/04/28 06:32

之前说过可以利用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;


1 0
原创粉丝点击