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