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

static void Impala::Core::Array::f_iir_xline_filter ( SRCTYPE *  src,
DSTTYPE *  dest,
int  sx,
int  sy,
double *  filter 
) [inline, static]

Definition at line 64 of file AniGauss.h.

References TriggsM().

Referenced by anigauss().

00065 {
00066     int      i, j;
00067     double   b1, b2, b3;
00068     double   pix, p1, p2, p3;
00069     double   sum, sumsq;
00070     double   iplus, uplus, vplus;
00071     double   unp, unp1, unp2;
00072     double   M[9];
00073 
00074     sumsq = filter[3];
00075     sum = sumsq*sumsq;
00076 
00077     for (i = 0; i < sy; i++) {
00078                 /* causal filter */
00079         b1 = filter[2]; b2 = filter[1]; b3 = filter[0];
00080                 p1 = *src/sumsq; p2 = p1; p3 = p1;
00081 
00082         iplus = src[sx-1];
00083         for (j = 0; j < sx; j++) {
00084             pix = *src++ + b1*p1 + b2*p2 + b3*p3;
00085             *dest++ = pix;
00086             p3 = p2; p2 = p1; p1 = pix; /* update history */
00087         }
00088 
00089                 /* anti-causal filter */
00090 
00091         /* apply Triggs border condition */
00092         uplus = iplus/(1.0-b1-b2-b3);
00093         b1 = filter[4]; b2 = filter[5]; b3 = filter[6];
00094         vplus = uplus/(1.0-b1-b2-b3);
00095 
00096         unp = p1-uplus;
00097         unp1 = p2-uplus;
00098         unp2 = p3-uplus;
00099 
00100         TriggsM(filter, M);
00101 
00102         pix = M[0]*unp+M[1]*unp1+M[2]*unp2 + vplus;
00103         p1  = M[3]*unp+M[4]*unp1+M[5]*unp2 + vplus;
00104         p2  = M[6]*unp+M[7]*unp1+M[8]*unp2 + vplus;
00105         pix *= sum; p1 *= sum; p2 *= sum;
00106 
00107         *(--dest) = pix;
00108         p3 = p2; p2 = p1; p1 = pix;
00109 
00110         for (j = sx-2; j >= 0; j--) {
00111             pix = sum * *(--dest) + b1*p1 + b2*p2 + b3*p3;
00112             *dest = pix;
00113             p3 = p2; p2 = p1; p1 = pix;
00114         }
00115         dest += sx;
00116         }
00117 }

Here is the call graph for this function:


Generated on Fri Mar 19 10:56:03 2010 for ImpalaSrc by  doxygen 1.5.1