Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

static double* Impala::Core::Array::makeFilter ( double  sigma,
int  deri,
double  acc,
int  fsize,
int  maxfsize 
) [inline, static]

Definition at line 69 of file MakeGaussian1d.h.

References Gauss(), and Hermite().

Referenced by MakeGaussian1d().

00070 {
00071     double* filter = new double[fsize];
00072 
00073     fsize = fsize/2; /* adjust to one side ,don't count the centre */
00074     double* center = filter + fsize;
00075 
00076     /* calc filter */
00077     int i;
00078     double sum = Gauss(0.0, sigma);
00079     center[0] = sum;
00080 
00081     for (i=1; i<=fsize; i++) {
00082         double val = Gauss(i, sigma);
00083         sum += val+val;
00084         center[i] = val;
00085         center[-i] = val;
00086     }
00087 
00088     /* normalize to sum=1.0 */
00089     for (i=-fsize; i<=fsize; i++)
00090         center[i] /= sum;
00091 
00092     /* replace by Hermite polynomial of order deri */
00093     if (deri > 0)
00094         for (i=-fsize; i<=fsize; i++)
00095             center[i] = Hermite(i, center[i], sigma, deri);
00096 
00097     fsize = fsize * 2 + 1; /* expand to 2-sided width */
00098     return filter;
00099 }

Here is the call graph for this function:


Generated on Fri Mar 19 10:57:39 2010 for ImpalaSrc by  doxygen 1.5.1