Definition at line 127 of file mainTable.cpp. References Impala::Core::Vector::DivAssign(), Impala::FileExists(), Impala::FileNamePath(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get2(), Impala::CmdOptions::GetArg(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn2(), Impala::Core::Database::RawDataSet::GetDatabase(), Impala::Core::Feature::FeatureTable::GetFeatureDefinition(), Impala::Core::Feature::FeatureTable::GetFeatureVectorLength(), Impala::Util::Database::GetInstance(), Impala::CmdOptions::GetInstance(), Impala::CmdOptions::GetString(), Impala::Util::Database::MakeDir(), Impala::Core::ImageSet::MakeImageSet(), Impala::Core::VideoSet::MakeVideoSet(), Impala::Core::Vector::Max(), Impala::Core::Vector::Min(), Impala::Util::Read(), Impala::Core::Table::Table::Size(), Impala::Core::Vector::SubAssign(), and Impala::Util::Write(). Referenced by mainTable(). 00128 { 00129 typedef Core::Feature::FeatureTable FeatureTable; 00130 typedef Core::Vector::VectorTem<Real64> VectorReal64; 00131 00132 CmdOptions& options = CmdOptions::GetInstance(); 00133 String tablename = options.GetArg(1); 00134 String scaledtablename = options.GetArg(2); 00135 String minmaxtablename = options.GetArg(3); 00136 00137 Core::Database::RawDataSet* dataSet = 0; 00138 String setName = options.GetString("videoSet"); 00139 if (! setName.empty()) 00140 dataSet = Core::VideoSet::MakeVideoSet(setName); 00141 setName = options.GetString("imageSet"); 00142 if (! setName.empty()) 00143 dataSet = Core::ImageSet::MakeImageSet(setName); 00144 Util::Database* db = &Util::Database::GetInstance(); 00145 if (dataSet) 00146 db = dataSet->GetDatabase(); 00147 00148 FeatureTable tableIn(tablename); 00149 Core::Table::Read(&tableIn, tablename, db); 00150 00151 // FeatureTable tableMinMax(tableIn.GetFeatureDefinition()); 00152 FeatureTable tableMinMax(tableIn.GetFeatureDefinition(), 2, tableIn.GetFeatureVectorLength()); 00153 FeatureTable tableOut(tableIn.GetFeatureDefinition(), tableIn.Size(), tableIn.GetFeatureVectorLength()); 00154 00155 VectorReal64 vMax; 00156 VectorReal64 vMin; 00157 00158 if(FileExists(minmaxtablename)) 00159 { 00160 // read minmax from file 00161 std::cout << "read minmax from file: " << minmaxtablename << std::endl; 00162 Core::Table::Read(&tableMinMax, minmaxtablename, db); 00163 vMax = tableMinMax.Get2(0); 00164 vMin = tableMinMax.Get2(1); 00165 } 00166 else 00167 { 00168 // create minmax 00169 Core::Vector::Max(&vMax, tableIn.GetColumn2(), tableIn.Size(), 0); 00170 tableMinMax.Add(0, vMax); 00171 00172 Core::Vector::Min(&vMin, tableIn.GetColumn2(), tableIn.Size(), 0); 00173 tableMinMax.Add(1, vMin); 00174 00175 std::cout << "write minmax to file: " << minmaxtablename << std::endl; 00176 Core::Table::Write(&tableMinMax, minmaxtablename, db, true); 00177 } 00178 00179 std::cout << "max: " << vMax << std::endl; 00180 std::cout << "min: " << vMin << std::endl; 00181 //FeatureTable tableOut(tableIn); 00182 00183 VectorReal64 vMaxMinMin = vMax; 00184 Core::Vector::SubAssign(vMaxMinMin,vMin); 00185 //std::cout << "vMaxMinMin: " << vMaxMinMin << std::endl; 00186 00187 VectorReal64 v; 00188 for(int i=0;i<tableIn.Size();i++) 00189 { 00190 v = tableIn.Get2(i); 00191 Core::Vector::SubAssign(v, vMin); 00192 Core::Vector::DivAssign(v, vMaxMinMin); 00193 tableOut.Add(tableIn.Get1(i), v); 00194 } 00195 00196 // create dir if neccecary 00197 std::string path = FileNamePath(scaledtablename); 00198 db->MakeDir(path); 00199 //table.Dump(dataSet, options.GetInt("start"), options.GetInt("end")); 00200 Core::Table::Write(&tableOut, scaledtablename, db, true); 00201 }
Here is the call graph for this function: ![]()
|