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

template<class DstArrayT, class SrcArrayT>
void Impala::Core::Array::RecGauss ( DstArrayT *&  dst,
SrcArrayT *  src,
double  sx,
double  sy,
int  dx,
int  dy,
int  recurOrder 
) [inline]

Definition at line 20 of file RecGauss.h.

References ConvKernel1d(), ConvKernelSeparated(), MakeGaussIIR1d(), and RecConvKernelSeparated().

Referenced by Impala::Core::VideoSet::ShotSegmenterGUI::BlurImage(), Impala::Core::VideoSet::ShotSegmenter::BlurImage(), Impala::Core::Trec::BuildInvCwFeatureList(), Impala::Core::Trec::BuildInvECwFeatureList(), Impala::Core::Array::Octaves::BuildOctave(), ColorGaborResponses(), ColorGaussResponses(), ColorMoments(), Impala::Core::VideoSet::BlackFrameProc::ComputeGradient(), Impala::Core::VideoSet::BlackFrameDetect::ComputeGradient(), Impala::Core::Feature::FISTDescriptor< INDEX_SIZE, ORI_SIZE >::ComputeGradient(), Impala::Application::Im::DoRecGaussVec3UInt8(), Impala::Core::Array::ColorMoments::FillMomentCache(), Impala::Visualization::Background::HandleNewFrame(), Impala::Application::WindowBackground::HandleNewFrame(), Harris(), Impala::Core::Feature::HarrisLaplaceDetector::harrisCornerDetector(), InvCompDer(), Laplacian(), Resample(), VisSemGabor(), and Impala::Core::Feature::WeibullIRGB().

00022 {
00023     bool hasDer = ((dx != 0) || (dy != 0));
00024     DstArrayT* tmp = 0;
00025 
00026     Array2dScalarReal64* gx = MakeGaussIIR1d(sx, dx, recurOrder);
00027     Array2dScalarReal64* gy = MakeGaussIIR1d(sy, dy, recurOrder);
00028     if (hasDer)
00029         RecConvKernelSeparated(tmp, src, gx, gy);
00030     else
00031         RecConvKernelSeparated(dst, src, gx, gy);
00032     delete gx;
00033     delete gy;
00034 
00035     if (!hasDer)
00036         return;
00037 
00038     double d1[3] = {-0.5, 0, 0.5};
00039     double d2[3] = {1, -2, 1};
00040     Array2dScalarReal64* kerx = 0;
00041     Array2dScalarReal64* kery = 0;
00042 
00043     if (dx == 1)
00044         kerx = MakeFromData<Array2dScalarReal64>(d1, 3, 1, 0, 0, true);
00045 //      kerx = MakeFromData<Array2dScalarReal64>(d1, 3, 1);
00046     if (dx == 2)
00047         kerx = MakeFromData<Array2dScalarReal64>(d2, 3, 1, 0, 0, true);
00048 //      kerx = MakeFromData<Array2dScalarReal64>(d2, 3, 1);
00049     if (dy == 1)
00050         kery = MakeFromData<Array2dScalarReal64>(d1, 3, 1, 0, 0, true);
00051 //      kery = MakeFromData<Array2dScalarReal64>(d1, 3, 1);
00052     if (dy == 2)
00053         kery = MakeFromData<Array2dScalarReal64>(d2, 3, 1, 0, 0, true);
00054 //      kery = MakeFromData<Array2dScalarReal64>(d2, 3, 1);
00055 
00056     if ((kerx != 0) && (kery != 0))
00057     {
00058         std::cout << "doing it" << std::endl;
00059         ConvKernelSeparated(dst, tmp, kerx, kery);
00060     }
00061     else
00062     {
00063         if (kerx != 0)
00064             ConvKernel1d(dst, tmp, 1, kerx);
00065         else
00066             ConvKernel1d(dst, tmp, 2, kery);
00067     }
00068     delete kerx;
00069     delete kery;
00070     delete tmp;
00071 }

Here is the call graph for this function:


Generated on Fri Mar 19 10:58:30 2010 for ImpalaSrc by  doxygen 1.5.1