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

void Impala::Core::Array::YvVfilterCoef ( double  sigma,
double *  filter 
)

Definition at line 486 of file AniGauss.h.

Referenced by anigauss().

00487 {
00488     /* the recipe in the Young-van Vliet paper:
00489      * I.T. Young, L.J. van Vliet, M. van Ginkel, Recursive Gabor filtering.
00490      * IEEE Trans. Sig. Proc., vol. 50, pp. 2799-2805, 2002.
00491      *
00492      * (this is an improvement over Young-Van Vliet, Sig. Proc. 44, 1995)
00493      */
00494 
00495         double q, qsq;
00496     double scale;
00497     double B, b1, b2, b3;
00498 
00499         /* initial values */
00500         double m0 = 1.16680, m1 = 1.10783, m2 = 1.40586;
00501         double m1sq = m1*m1, m2sq = m2*m2;
00502 
00503         /* calculate q */
00504         if(sigma < 3.556)
00505                 q = -0.2568 + 0.5784 * sigma + 0.0561 * sigma * sigma;
00506         else
00507                 q = 2.5091 + 0.9804 * (sigma - 3.556);
00508 
00509         qsq = q*q;
00510 
00511         /* calculate scale, and b[0,1,2,3] */
00512         scale = (m0 + q) * (m1sq + m2sq + 2*m1*q + qsq);
00513         b1 = -q * (2*m0*m1 + m1sq + m2sq + (2*m0 + 4*m1) * q + 3*qsq) / scale;
00514         b2 = qsq * (m0 + 2*m1 + 3*q) / scale;
00515         b3 = - qsq * q / scale;
00516     
00517         /* calculate B */
00518         B = (m0 * (m1sq + m2sq))/scale;
00519 
00520         /* fill in filter */
00521     filter[0] = -b3;
00522     filter[1] = -b2;
00523     filter[2] = -b1;
00524     filter[3] = B;
00525     filter[4] = -b1;
00526     filter[5] = -b2;
00527     filter[6] = -b3;
00528 }


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