123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /**
- * @file createLocalFeatures.cpp
- * @brief create local feature files
- * @author Erik Rodner
- * @date 02/14/2008
- */
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <core/basics/Config.h>
- #include <vislearning/baselib/Globals.h>
- #include <vislearning/baselib/Preprocess.h>
- #include <vislearning/features/localfeatures/GenericLFSelection.h>
- #include <vislearning/features/localfeatures/LocalFeatureRepresentation.h>
- #include <vislearning/features/localfeatures/LFWriteCache.h>
- #include <vislearning/cbaselib/MultiDataset.h>
- #include <vislearning/baselib/ProgressBar.h>
- #ifdef NOVISUAL
- #include <vislearning/nice_nonvis.h>
- #else
- #include <vislearning/nice.h>
- #endif
- using namespace OBJREC;
- using namespace NICE;
- using namespace std;
- /**
- create local feature files
- */
- int main (int argc, char **argv)
- {
- std::set_terminate(__gnu_cxx::__verbose_terminate_handler);
- Config conf ( argc, argv );
- string setname;
- try {
- setname = conf.gS("main", "set");
- } catch ( Exception ) {
- fprintf (stderr, "usage: %s -config <configfn> -ds <dataset>\n", argv[0]);
- exit(-1);
- }
- bool useColor = conf.gB("main", "color", true );
- Preprocess::Init ( &conf );
- MultiDataset md ( &conf );
- LabeledSet ls = *(md[setname]);
- LocalFeatureRepresentation *lfrep = GenericLFSelection::selectLocalFeatureRep ( &conf );
- LFWriteCache lfw ( &conf, lfrep );
-
- std::string cachedir = conf.gS("cache", "root");
- int cachemode = Globals::getCacheMode ( conf.gS("cache", "mode", "cat") );
-
- ProgressBar pb ("Local Feature Extraction" );
- LOOP_ALL_S(ls)
- {
- EACH_S(classno,filename);
- pb.update ( ls.count() );
- NICE::Image img;
- NICE::ColorImage imgColor;
- if ( !useColor )
- img = Preprocess::ReadImgAdv ( filename );
- else
- imgColor = Preprocess::ReadImgAdvRGB ( filename );
- Globals::setCurrentImgFN ( filename );
-
- std::string cache_filename = Globals::getCacheFilename( cachedir, cachemode );
- std::string cache_filename_desc = cache_filename + ".desc";
- struct stat dummy;
- if ( stat ( cache_filename_desc.c_str(), &dummy ) < 0 )
- {
- VVector features;
- VVector positions;
- cerr << "creating features for file " << filename << " ..." << endl;
- cerr << "writing features to file " << cache_filename_desc << " ..." << endl;
- if ( !useColor ) {
- lfw.extractFeatures ( img, features, positions );
- } else {
- lfw.extractFeatures ( imgColor, features, positions );
- }
- cerr << "pos: " << positions.size() << " feat:" << features.size() << endl;
- } else {
- cerr << "description file " << cache_filename_desc << " exists !" << endl;
- }
- }
-
- delete lfrep;
-
- return 0;
- }
|