9 #ifndef CFeatureExtraction_H
10 #define CFeatureExtraction_H
80 void loadFromConfigFile(
82 const std::string §ion);
86 void dumpToTextStream(
CStream &out)
const;
145 TORBOptions() : scale_factor(1.2), n_levels(8), extract_patch(false), min_distance(0) {}
166 TSURFOptions() : rotation_invariant(true),hessianThreshold(600), nOctaves(2), nLayersPerOctave(4) { }
194 } PolarImagesOptions;
203 } LogPolarImagesOptions;
225 void detectFeatures(
const CImage & img,
227 const unsigned int init_ID = 0,
228 const unsigned int nDesiredFeatures = 0,
249 void computeDescriptors(
262 void findMoreFeatures(
const CImage &img,
265 unsigned int nDesiredFeats = 0)
const;
290 static void detectFeatures_SSE2_FASTER9(
293 const int threshold = 20,
294 bool append_to_list =
false,
296 std::vector<size_t> * out_feats_index_by_row = NULL );
300 static void detectFeatures_SSE2_FASTER10(
303 const int threshold = 20,
304 bool append_to_list =
false,
306 std::vector<size_t> * out_feats_index_by_row = NULL );
310 static void detectFeatures_SSE2_FASTER12(
313 const int threshold = 20,
314 bool append_to_list =
false,
316 std::vector<size_t> * out_feats_index_by_row = NULL );
328 void internal_computeSiftDescriptors(
const CImage &in_img,
336 void internal_computeSurfDescriptors(
const CImage &in_img,
343 void internal_computeORBDescriptors(
const CImage &in_img,
352 void internal_computeSpinImageDescriptors(
const CImage &in_img,
361 void internal_computePolarImageDescriptors(
const CImage &in_img,
370 void internal_computeLogPolarImageDescriptors(
const CImage &in_img,
379 void selectGoodFeaturesKLT(
382 unsigned int init_ID = 0,
383 unsigned int nDesiredFeatures = 0,
384 void *mask_ = NULL)
const;
392 void extractFeaturesKLT(
395 unsigned int init_ID = 0,
396 unsigned int nDesiredFeatures = 0,
408 void extractFeaturesBCD(
411 unsigned int init_ID = 0,
412 unsigned int nDesiredFeatures = 0,
424 void extractFeaturesSIFT(
427 unsigned int init_ID = 0,
428 unsigned int nDesiredFeatures = 0,
440 void extractFeaturesORB(
443 const unsigned int init_ID = 0,
444 const unsigned int nDesiredFeatures = 0,
459 void extractFeaturesSURF(
462 unsigned int init_ID = 0,
463 unsigned int nDesiredFeatures = 0,
475 void extractFeaturesFAST(
478 unsigned int init_ID = 0,
479 unsigned int nDesiredFeatures = 0,
485 void extractFeaturesFASTER_N(
489 unsigned int init_ID = 0,
490 unsigned int nDesiredFeatures = 0,
502 void* my_scale_space_extrema(
504 int octvs,
int intvls,
double contr_thr,
int curv_thr,
505 void* storage )
const;
510 void my_adjust_for_img_dbl(
void* features )
const;
521 void getTimesExtrema(
void* dog_pyr,
int octvs,
int intvls,
float row,
float col,
unsigned int &nMin,
unsigned int &nMax )
const;
530 double getLaplacianValue(
void* dog_pyr,
int octvs,
int intvls,
float row,
float col )
const;
537 void insertCvSeqInCFeatureList(
void* features,
CFeatureList &list,
unsigned int init_ID = 0 )
const;
A class for storing images as grayscale or RGB bitmaps.
class BASE_IMPEXP CStream
This class allows loading and storing values and vectors of different types from a configuration text...
A structure for defining a ROI within an image.
CMatrixTemplate< bool > CMatrixBool
Declares a matrix of booleans (non serializable).
A list of visual features, to be used as output by detectors, as input/output by trackers, etc.
TDescriptorType
The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescri...
TFeatureType
Types of features - This means that the point has been detected with this algorithm, which is independent of additional descriptors a feature may also have.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Kanade-Lucas-Tomasi feature [SHI'94].
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...