00001 #ifndef Impala_Core_Array_RecGabor_h
00002 #define Impala_Core_Array_RecGabor_h
00003
00004 #include "Core/Array/MakeGaborIIR1d.h"
00005 #include "Core/Array/RecConvKernelSeparated.h"
00006
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Array
00012 {
00013
00014
00015
00016 template<class DstArrayT, class SrcArrayT>
00017 inline void
00018 RecGabor(DstArrayT*& dst, SrcArrayT* src, double s, double omega0, double theta)
00019 {
00020 Complex64 leftBorderVal, rightBorderVal;
00021 Array2dComplex64* gx = MakeGaborIIR1d(s, omega0*cos(theta),
00022 leftBorderVal, rightBorderVal);
00023
00024 Complex64 topBorderVal, bottomBorderVal;
00025 Array2dComplex64* gy = MakeGaborIIR1d(s, omega0*sin(theta),
00026 topBorderVal, bottomBorderVal);
00027
00028 RecConvKernelSeparated(dst, src, gx, gy, leftBorderVal, rightBorderVal,
00029 topBorderVal, bottomBorderVal);
00030 delete gx;
00031 delete gy;
00032 }
00033
00034 }
00035 }
00036 }
00037
00038 #endif