Fawkes API  Fawkes Development Version
sift.h
1 
2 /***************************************************************************
3  * sift.h - Feature-based classifier using OpenCV structures
4  *
5  * Created: Mon Mar 15 15:47:11 2008
6  * Copyright 2008 Stefan Schiffer [stefanschiffer.de]
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _FIREVISION_CLASSIFIERS_SIFT_H_
25 #define _FIREVISION_CLASSIFIERS_SIFT_H_
26 
27 #ifndef HAVE_SIFT
28 # error SIFT not available, you may not use the SiftClassifier
29 #endif
30 
31 #include <fvclassifiers/classifier.h>
32 
33 //#ifdef FEAT_TIMETRACKER
34 namespace fawkes {
35 class TimeTracker;
36 }
37 //#endif
38 
39 struct CvMemStorage;
40 typedef struct _IplImage IplImage;
41 
42 struct feature;
43 
44 namespace firevision {
45 class SiftClassifier : public Classifier
46 {
47 public:
48  SiftClassifier(const char * features_file,
49  unsigned int pixel_width,
50  unsigned int pixel_height,
51  int kdtree_bbf_max_nn_chks = 200,
52  float nn_sq_dist_ratio_thr = 0.49,
53  int flags = 0);
54 
55  virtual ~SiftClassifier();
56 
57  virtual std::list<ROI> *classify();
58 
59 private:
60  const char **features_files_;
61 
62  IplImage *obj_img_;
63  feature * obj_features_;
64  int obj_num_features_;
65 
66  CvMemStorage *storage_;
67  IplImage * image_;
68 
69  feature *img_features_;
70 
71  float nn_sq_dist_ratio_thr_;
72  int kdtree_bbf_max_nn_chks_;
73  int flags_;
74 
75  //#ifdef FEAT_TIMETRACKER
77  unsigned int loop_count_;
78  unsigned int ttc_objconv_;
79  unsigned int ttc_objfeat_;
80  unsigned int ttc_imgconv_;
81  unsigned int ttc_imgfeat_;
82  unsigned int ttc_matchin_;
83  unsigned int ttc_roimerg_;
84  //#endif
85 };
86 
87 } // end namespace firevision
88 
89 #endif
Time tracking utility.
Definition: tracker.h:37
Classifier to extract regions of interest.
Definition: classifier.h:36
SIFT classifier.
Definition: sift.h:46
SiftClassifier(const char *features_file, unsigned int pixel_width, unsigned int pixel_height, int kdtree_bbf_max_nn_chks=200, float nn_sq_dist_ratio_thr=0.49, int flags=0)
Constructor.
Definition: sift.cpp:74
virtual ~SiftClassifier()
Destructor.
Definition: sift.cpp:128
virtual std::list< ROI > * classify()
Classify image.
Definition: sift.cpp:136
Fawkes library namespace.