资源简介
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个文件信息
评论
共有 条评论