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 }
|