• 大小: 33KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: 相位解缠  

资源简介

Insar Goldstein枝切方法相位解缠,用C语言别写的,是相位解缠绕算法的经典路径跟踪算法。

资源截图

代码片段和文件信息

/*
 *   brcut.c -- functions for branch cutting
 */
#include 
#include 
#include “brcut.h“

/* Place a branch cut in the bitflags array from pixel (ab) */
/* to pixel (cd).  The bit for the branch cut pixels is     */
/* given by the value of “code“.                             */
void PlaceCut(unsigned char *array int a int b int c int d
              int xsize int ysize int code)
{
  int  i j k ii jj m n istep jstep;
  double  r;

  /* residue location is upper-left corner of 4-square */
  if (c > a && a > 0) a++;
  else if (c < a && c > 0) c++;
  if (d > b && b > 0) b++;
  else if (d < b && d > 0) d++;

  if (a==c && b==d) {
    array[b*xsize + a] |= code;
    return;
  }
  m = (a < c) ? c - a : a - c;
  n = (b < d) ? d - b : b - d;
  if (m > n) {
    istep = (a < c) ? +1 : -1;
    r = ((double)(d - b))/((double)(c - a));
    for (i=a; i!=c+istep; i+=istep) {
      j = b + (i - a)*r + 0.5;
      array[j*xsize + i] |= code;
    }
  }
  else {   /* n < m */
    jstep = (b < d) ? +1 : -1;
    r = ((double)(c - a))/((double)(d - b));
    for (j=b; j!=d+jstep; j+=jstep) {
      i = a + (j - b)*r + 0.5;
      array[j*xsize + i] |= code;
    }
  }
  return;
}

/* Return the squared distance between the pixel (ab) and the */
/* nearest border pixel.  The border pixels are encoded in the */
/* bitflags array by the value of “border_code“.               */
int DistToBorder(unsigned char *bitflags int border_code
               int a int b int *ra int *rb int xsize int ysize)
{
  int  besta bestb found dist2 best_dist2;
  int  i j k bs;
  *ra = *rb = 0;
  for (bs=0; bs    found = 0;
    best_dist2 = 1000000;  /* initialize to large value */
    /* search boxes of increasing size until border pixel found */
    for (j=b - bs; j<=b + bs; j++) {
      for (i=a - bs; i<=a + bs; i++) {
        k = j*xsize + i;
        if (i<=0 || i>=xsize - 1 || j<=0 || j>=ysize - 1
              || (bitflags[k] & border_code)) {
          found = 1;
          dist2 = (j - b)*(j - b) + (i - a)*(i - a);
          if (dist2 < best_dist2) {
            best_dist2 = dist2;
            besta = i;
            bestb = j;
          }           
        }
      }
    }
    if (found) {
      *ra = besta;
      *rb = bestb;
      break;
    }
  }
  return best_dist2;


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

     文件       2427  2001-09-17 14:41  D-Insar Goldstein方法相位解缠\Goldstein\brcut.c

     文件        283  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\brcut.h

     文件       1495  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\dipole.c

     文件        132  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\dipole.h

     文件       3600  2001-09-17 23:00  D-Insar Goldstein方法相位解缠\Goldstein\extract.c

     文件        278  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\extract.h

     文件        332  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\file.h

     文件       4556  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\gold.c

     文件        175  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\gold.h

     文件        343  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\grad.c

     文件         71  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\grad.h

     文件       5446  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\list.c

     文件       1240  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\list.h

     文件       6694  2005-07-31 17:52  D-Insar Goldstein方法相位解缠\Goldstein\maingold.c

     文件       4026  2005-07-31 17:59  D-Insar Goldstein方法相位解缠\Goldstein\maingold.dsp

     文件        541  2005-07-31 17:59  D-Insar Goldstein方法相位解缠\Goldstein\maingold.dsw

     文件      99328  2009-10-11 11:48  D-Insar Goldstein方法相位解缠\Goldstein\maingold.ncb

     文件      48640  2009-10-11 11:48  D-Insar Goldstein方法相位解缠\Goldstein\maingold.opt

     文件        969  2005-07-31 18:01  D-Insar Goldstein方法相位解缠\Goldstein\maingold.plg

     文件       1750  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\maskfat.c

     文件        242  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\maskfat.h

     文件       3277  2005-07-31 18:01  D-Insar Goldstein方法相位解缠\Goldstein\path.c

     文件        217  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\path.h

     文件         85  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\pi.h

     文件       1315  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\residues.c

     文件        182  1999-07-02 10:35  D-Insar Goldstein方法相位解缠\Goldstein\residues.h

     文件      10017  2001-09-18 21:56  D-Insar Goldstein方法相位解缠\Goldstein\util.c

     文件       1753  2005-07-31 17:13  D-Insar Goldstein方法相位解缠\Goldstein\util.h

     目录          0  2010-12-18 22:10  D-Insar Goldstein方法相位解缠\Goldstein

     目录          0  2010-12-18 22:10  D-Insar Goldstein方法相位解缠

............此处省略3个文件信息

评论

共有 条评论

相关资源