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

void Impala::Samples::Timing::DoOneRecConvSep ( String  machineName,
String  srcName,
int  runCount 
)

Definition at line 125 of file mainTiming.cpp.

References Impala::Util::Database::GetInstance(), Impala::Core::Array::MakeGaussIIR1d(), Impala::Core::Array::ReadRaw(), Impala::Core::Array::RecConvKernelSeparated(), Impala::Core::Array::RGB2Intensity(), Impala::Util::TimePlot::SaveData(), Impala::Util::TimePlot::Start(), and Impala::Util::TimePlot::Stop().

Referenced by DoRecConvSep().

00126 {
00127     Array2dVec3UInt8* srcData = 0;
00128     ReadRaw(srcData, srcName, &Util::Database::GetInstance());
00129     int borderSize = 22;
00130     Array2dScalarReal64* rData;
00131     rData = ArrayClone<Array2dScalarReal64>(srcData, borderSize, borderSize);
00132     RGB2Intensity(rData, srcData);
00133     delete srcData;
00134 
00135     int f, g, i;
00136     const int numFunc = 1;
00137     const int numGauss = 5;
00138     Array2dScalarReal64* gauss[numGauss];
00139     gauss[0] = MakeGaussIIR1d(5.0, 0, 1); // size == 3
00140     gauss[1] = MakeGaussIIR1d(5.0, 0, 2); // size == 5
00141     gauss[2] = MakeGaussIIR1d(5.0, 0, 3); // size == 7
00142     gauss[3] = MakeGaussIIR1d(5.0, 0, 4); // size == 9
00143     gauss[4] = MakeGaussIIR1d(5.0, 0, 5); // size == 11
00144     int gaussSize[numGauss];
00145     for (i=0 ; i<numGauss ; i++)
00146         gaussSize[i] = gauss[i]->CW();
00147     int nrSplitTimes = 4;
00148     TimePlot plotter(numFunc, numGauss, gaussSize, nrSplitTimes, runCount);
00149 
00150     Array2dScalarReal64* res = ArrayClone<Array2dScalarReal64>(rData);
00151 
00152     /*
00153     std::vector<Array2dScalarReal64*> resList;
00154     for (g=0 ; g<numGauss ; g++ ) {
00155         Array2dScalarReal64* r = 0;
00156         r = RecConvKernelSeparated(r, rData, gauss[g], gauss[g]);
00157         resList.push_back(r);
00158     }
00159     String fName = srcName + "_g";
00160     // MSVC requires explicit use of template type (internal compiler error)
00161     WriteRawList<Array2dScalarReal64>(resList, fName, true);
00162     return;
00163     */
00164 
00165     for (i=0 ; i<runCount ; i++)
00166     {
00167         for (g=0 ; g<numGauss ; g++)
00168         {
00169             for (f=0 ; f<numFunc ; f++)
00170             {
00171                 plotter.Start(f, g, i);
00172                 RecConvKernelSeparated(res, rData, gauss[g], gauss[g], &plotter);
00173                 plotter.Stop();
00174             }
00175         }
00176     }
00177 
00178     String* funcName = new String[numFunc];
00179     funcName[0] = "only variation";
00180 
00181     String baseName = srcName.substr(0, srcName.find('.'));
00182     plotter.SaveData(machineName, String("recconvsep"), baseName, funcName);
00183 
00184     delete [] funcName;
00185     delete rData;
00186     delete res;
00187 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:38:48 2010 for ImpalaSrc by  doxygen 1.5.1