FCGetFeature.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * @file FCGetFeature.cpp
  3. * @brief interface to GetFeature
  4. * @author Erik Rodner
  5. * @date 10.09.2007
  6. */
  7. #ifdef NICE_USELIB_ICE
  8. #include <core/imagedisplay/ImageDisplay.h>
  9. #include <image_nonvis.h>
  10. #include <core/iceconversion/convertice.h>
  11. #include <core/iceconversion/image_convertice.h>
  12. #include <iostream>
  13. #include "vislearning/features/simplefeatures/FCGetFeature.h"
  14. using namespace OBJREC;
  15. using namespace std;
  16. using namespace NICE;
  17. FCGetFeature::FCGetFeature( const Config *_conf,
  18. ice::GetFeature *_gf ) :
  19. FeatureFactory ( _conf ),
  20. gf(_gf)
  21. {
  22. }
  23. FCGetFeature::~FCGetFeature()
  24. {
  25. }
  26. /** return feature vector for this image */
  27. int FCGetFeature::convert ( const NICE::Image & src, NICE::Vector & vec )
  28. {
  29. if ( (int)vec.size() != gf->getDimension() )
  30. vec.resize( gf->getDimension() );
  31. ice::Window win ( 0, 0, src.width()-1, src.height()-1 );
  32. ice::Contur c;
  33. c.SetStart ( win.XI(), win.YI() );
  34. c.Add ( win.XA(), win.YI() );
  35. c.Add ( win.XA(), win.YA() );
  36. c.Add ( win.XI(), win.YA() );
  37. c.Add ( win.XI(), win.YI() );
  38. ice::Vector vec_ice ( gf->getDimension() );
  39. gf->get_feature ( NICE::createIceImage ( src ) , c, vec_ice, win );
  40. vec = NICE::makeEVector<double> ( vec_ice );
  41. return 0;
  42. }
  43. #endif