• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: matlab  insar  

资源简介

利用枝切法实现相位解缠,实测可用,干涉相位条纹图解缠。

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BranchCuts.m generates branch cuts based on the phase residues. This is
% done using the Goldstein method as described in “Two-dimensional phase 
% unwrapping: theory algorithms and software“ by Dennis Ghiglia and 
% Mark Pritt.
% “residue_charge“ is a matrix wherein positive residues are 1 and 
% negative residues are 0. residue_charge是一个矩阵,用来保存残差值。

% “max_box_radius“ defines the maximum search radius for the balancing of 
% residues. If this is too large areas will be isolated by the branch
% cuts.最大窗口半径
% “IM_mask“ is a binary matrix. This serves as an artificial border for the
% branch cuts to connect to.二进制矩阵
% Created by B.S. Spottiswoode on 15/10/2004
% Last modified on 18/10/2004
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function branch_cuts=BranchCuts(residue_charge max_box_radius IM_mask);

[rowdim coldim]=size(residue_charge);

branch_cuts=~IM_mask;                               %Define initial branch cuts borders as the mask.
residue_charge_masked=residue_charge;
residue_charge(logical(~IM_mask))=0;                %将不在掩膜中的残差点去掉。Remove all residues except those in the mask
cluster_counter=1;                                  %记录每个群中的残差点个数。Keep track of the number of residues in each cluster
satellite_residues=0;                               %记录卫星参差点个数?Keep track of the number of satellite residues accounted for

residue_binary=(residue_charge~=0);                 %逻辑矩阵标注了残差点的位置,即正残差点(+1标记)和负残差点(-1标记)的位置全部用1表明,非残差点不变是0。
residue_balanced=zeros(rowdim coldim);             %初始时假定所有的残差点都是不平衡的。
[rowrescolres] = find(residue_binary);             %找到残差点的坐标Find the coordinates of the residues
adjacent_residues=zeros(rowdim coldim);            %定义搜寻窗口中找到的新残差点的位置Defines the positions of additional residues found in the search box
missed_residues=0;                                  %记录有效的残差点的个数?Keep track of the effective number of residues left unbalanced because of

disp(‘Calculating branch cuts ...‘);
tic;%开始计时
temp=size(rowres);%rowres中保存了残差值的行号
for i=1:temp(1);                                    %Loop through the residues
    radius=1;                                       %Set the initial box size
    r_active=rowres(i);                             %当前活动残差点的行数和列数。Coordinates of the active residue
    c_active=colres(i);
    count_nearby_residues_flag=1;                   %用于说明是否跟踪周围残差点的标记。Flag to indicate whether or not to keep track of the nearby residues
    cluster_counter=1;                              %重置残差点个数记录Reset the cluster counter
    adjacent_residues=zeros(rowdim coldim);        %重置邻近的Reset the adjacent residues indicator
    charge_counter=residue_charge_masked(r_active c_active);                %保存初始残差点电量Store the initial residue charge
    if residue_balanced(r_active c_active)~=1                        %Has this residue already been balanced?
        while (ch

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      18098  2009-12-28 20:21  枝切法相位解缠\枝切法相位解缠\BranchCuts.m

     文件      12083  2009-02-11 14:58  枝切法相位解缠\枝切法相位解缠\FloodFill.m

     文件       2360  2010-01-22 12:31  枝切法相位解缠\枝切法相位解缠\GoldsteinUnwrap2D.m

     文件       6964  2008-12-22 10:05  枝切法相位解缠\枝切法相位解缠\GuidedFloodFill.m

     文件       4382  2008-12-22 10:05  枝切法相位解缠\枝切法相位解缠\PhaseDerivativeVariance.m

     文件       2086  2009-12-28 15:07  枝切法相位解缠\枝切法相位解缠\PhaseResidues.m

     文件       5744  2018-12-17 00:37  枝切法相位解缠\枝切法相位解缠\QualityGuidedUnwrap2D.m

     目录          0  2018-12-22 00:39  枝切法相位解缠\枝切法相位解缠

     目录          0  2018-12-22 00:39  枝切法相位解缠

----------- ---------  ---------- -----  ----

                51717                    9


评论

共有 条评论