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

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

Definition at line 119 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().

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

Here is the call graph for this function:


Generated on Thu Jan 13 09:24:04 2011 for ImpalaSrc by  doxygen 1.5.1