1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /**
- * @file testSift.cpp
- * @brief test sift implementation
- * @author Björn Fröhlich
- * @date 06/08/2010
- */
- #include "objrec/nice.h"
- #include "objrec/baselib/Config.h"
- #include "objrec/features/localfeatures/LocalFeatureSift.h"
- #include "objrec/features/localfeatures/LocalFeatureOpponnentSift.h"
- #include "objrec/features/localfeatures/LocalFeatureRGBSift.h"
- #include "objrec/features/localfeatures/LFColorSande.h"
- #include "objrec/features/localfeatures/LocalFeatureLFInterface.h"
- #include "objrec/baselib/Globals.h"
- using namespace OBJREC;
- using namespace NICE;
- using namespace std;
- int main (int argc, char **argv)
- {
- if(argc < 1)
- {
- cerr << "Bitte Bild angeben" << endl;
- return -1;
- }
-
- string filename;
- filename += argv[1];
-
- Image img(filename);
- ColorImage cimg(filename);
- Globals::setCurrentImgFN ( filename );
-
- Config *conf = new Config();
- string section = "SIFT";
- conf->sS(section, "scales", "1");
- conf->sI(section, "descriptor_size", 128);
- conf->sI(section, "grid", 100);
- conf->sB(section, "usegrid", true);
- conf->sS(section, "params", "--descriptor sift");
-
-
- LocalFeatureRepresentation *cSIFT = new LFColorSande ( conf, section );
- LocalFeature *lSIFT = new LocalFeatureLFInterface(conf, cSIFT);
-
- //LocalFeature *oSIFT = new LocalFeatureSift (conf);
- LocalFeatureOpponnentSift *oSIFT = new LocalFeatureOpponnentSift (conf);
-
- VVector features1;
- VVector features2;
- VVector positions;
- //cSIFT->extractFeatures ( cimg, features1, positions );
- lSIFT->getDescriptors( img, positions, features1 );
- //showImage(cimg);
- oSIFT->getDescriptors( img, positions, features2 );
- cout << "f1.size: " << features1.size() << " f2.size: " << features2.size() << " p.size() " << positions.size() << endl;
-
-
- double max[2] = {0.0,0.0};
- int feat = 1;
- for(int i = 0; i < (int)features1[feat].size(); i++)
- {
- max[0] = std::max(max[0], features1[feat][i]);
- max[1] = std::max(max[1], features2[feat][i]);
- cout << features1[feat][i] << "\t" << features2[feat][i] << endl;
- }
- cout << "max: " << max[0] << "\t" << max[1] << endl;
- return 0;
- }
|