Available filters are: continuation filter, reduction to pole filter, and vertical differentiation filter.
See Also: FFT2DForward(), FFT2DInverse(), Transform2DForward(), Transform2DInverse()
void FFTAndFilter ( fpIn, dbic, dbiw, fpOut, dboc, dbow,
szFILB, psParam, pfnProgress, pProgressArg );
FILE *fpIn;
File pointer of the input database file.
int *dbic;
Array of 1 input channel.
int *dbiw;
Offset and size of input window.
FILE *fpOut;
File pointer of the output database file.
int *dboc;
Array of 1 output channel.
int *dbow;
Offset and size of output window. Window size
should be the same as the input window size.
char *szFILB;
Name of a pix file used as a disk buffer. It is
only used when the entire image does not fit
into memory. If szFILB is a null string but a
buffer is needed, a file name is automatically
generated and saved in szFILB on return.
FilterParamType *psParam;
A pointer to the filter parameter structure which
contains all necessary parameters for the filter
(filter type, X and Y pixel size, cutoff
frequency, order of differentiation, Z level,
source and regional field direction angles etc.).
IMPProgressFunc pfnProgress;
is the pointer to a progress counter function. See
IMPProgressFunc for details.
void* pProgressArg;
is the callback data argument to the pfnProgress() function.
FFTAndFilter() returns 1 if the data are suitable for filtering, and
returns 0 otherwise.
FILE *fpIn, *fpOut;
int dbic[1], dbiw[4], dboc[1], dbow[4];
char szFILB[65];
FilterParamType sParam;
fpIn = fpOut = IDBOpen ( "magfield.pix", "r+");
dbic[0] = 1;
dbiw[0] = dbiw[1] = 0;
dbiw[2] = dbiw[3] = 256;
dboc[0] = 2;
dbow[0] = dbow[1] = 0;
dbow[2] = dbow[3] = 256;
strcpy(szFILB, "tmpbuf.pix");
sParam.nFiltType = F_CONT;
sParam.fZLevel = 300.0;
sParam.nPixelSizeX = ...;
sParam.nPixelSizeY = ...;
FFTAndFilter (fpIn, dbic, dbiw, fpOut, dboc, dbow, szFILB,
&sParam, IMPTermProgressCounter,NULL);