diff options
Diffstat (limited to 'ml/dlib/dlib/image_processing/setup_hashed_features.h')
-rw-r--r-- | ml/dlib/dlib/image_processing/setup_hashed_features.h | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/ml/dlib/dlib/image_processing/setup_hashed_features.h b/ml/dlib/dlib/image_processing/setup_hashed_features.h deleted file mode 100644 index 5b82cecb4..000000000 --- a/ml/dlib/dlib/image_processing/setup_hashed_features.h +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright (C) 2011 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_SETUP_HAShED_FEATURES_Hh_ -#define DLIB_SETUP_HAShED_FEATURES_Hh_ - -#include "setup_hashed_features_abstract.h" -#include "scan_image_pyramid.h" -#include "scan_image_boxes.h" -#include "../lsh.h" -#include "../statistics.h" -#include "../image_keypoint.h" -#include "../geometry.h" - -namespace dlib -{ - -// ---------------------------------------------------------------------------------------- - - class image_hash_construction_failure : public error - { - public: - image_hash_construction_failure( - const std::string& a - ): error(a) {} - }; - -// ---------------------------------------------------------------------------------------- - - template < - typename image_scanner - > - void use_uniform_feature_weights ( - image_scanner& scanner - ) - { - typename image_scanner::feature_extractor_type fe; - fe.copy_configuration(scanner.get_feature_extractor()); - fe.use_uniform_feature_weights(); - scanner.copy_configuration(fe); - } - -// ---------------------------------------------------------------------------------------- - - template < - typename image_scanner - > - void use_relative_feature_weights ( - image_scanner& scanner - ) - { - typename image_scanner::feature_extractor_type fe; - fe.copy_configuration(scanner.get_feature_extractor()); - fe.use_relative_feature_weights(); - scanner.copy_configuration(fe); - } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- -// stuff for scan_image_pyramid -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - typename image_array, - typename pyramid, - typename feature_extractor, - template <typename fe, typename hash> class feature_image - > - void setup_hashed_features ( - scan_image_pyramid<pyramid, feature_image<feature_extractor, projection_hash> >& scanner, - const image_array& images, - const feature_extractor& fe, - int bits, - unsigned long num_samples = 200000 - ) - { - // make sure requires clause is not broken - DLIB_ASSERT(0 < bits && bits <= 32 && - num_samples > 1 && - images.size() > 0, - "\t void setup_hashed_features()" - << "\n\t Invalid inputs were given to this function. " - << "\n\t bits: " << bits - << "\n\t num_samples: " << num_samples - << "\n\t images.size(): " << images.size() - ); - - pyramid pyr; - - const random_subset_selector<typename feature_extractor::descriptor_type>& samps = - randomly_sample_image_features(images, pyr, fe, num_samples); - - if (samps.size() <= 1) - throw dlib::image_hash_construction_failure("Images too small, not able to gather enough samples to make hash"); - - projection_hash phash = create_random_projection_hash(samps, bits); - - feature_image<feature_extractor, projection_hash> hfe; - hfe.copy_configuration(scanner.get_feature_extractor()); - hfe.set_hash(phash); - hfe.copy_configuration(fe); - scanner.copy_configuration(hfe); - } - -// ---------------------------------------------------------------------------------------- - - template < - typename image_array, - typename pyramid, - typename feature_extractor, - template <typename fe, typename hash> class feature_image - > - void setup_hashed_features ( - scan_image_pyramid<pyramid, feature_image<feature_extractor, projection_hash> >& scanner, - const image_array& images, - int bits, - unsigned long num_samples = 200000 - ) - { - // make sure requires clause is not broken - DLIB_ASSERT(0 < bits && bits <= 32 && - num_samples > 1 && - images.size() > 0, - "\t void setup_hashed_features()" - << "\n\t Invalid inputs were given to this function. " - << "\n\t bits: " << bits - << "\n\t num_samples: " << num_samples - << "\n\t images.size(): " << images.size() - ); - - feature_extractor fe; - setup_hashed_features(scanner, images, fe, bits, num_samples); - } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- -// stuff for scan_image_boxes -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - typename image_array, - typename feature_extractor, - template <typename fe, typename hash> class feature_image, - typename box_generator - > - void setup_hashed_features ( - scan_image_boxes<feature_image<feature_extractor, projection_hash>,box_generator >& scanner, - const image_array& images, - const feature_extractor& fe, - int bits, - unsigned long num_samples = 200000 - ) - { - // make sure requires clause is not broken - DLIB_ASSERT(0 < bits && bits <= 32 && - num_samples > 1 && - images.size() > 0, - "\t void setup_hashed_features()" - << "\n\t Invalid inputs were given to this function. " - << "\n\t bits: " << bits - << "\n\t num_samples: " << num_samples - << "\n\t images.size(): " << images.size() - ); - - pyramid_disable pyr; - - const random_subset_selector<typename feature_extractor::descriptor_type>& samps = - randomly_sample_image_features(images, pyr, fe, num_samples); - - if (samps.size() <= 1) - throw dlib::image_hash_construction_failure("Images too small, not able to gather enough samples to make hash"); - - projection_hash phash = create_random_projection_hash(samps, bits); - - feature_image<feature_extractor, projection_hash> hfe; - hfe.copy_configuration(scanner.get_feature_extractor()); - hfe.set_hash(phash); - hfe.copy_configuration(fe); - scanner.copy_configuration(hfe); - } - -// ---------------------------------------------------------------------------------------- - - template < - typename image_array, - typename feature_extractor, - template <typename fe, typename hash> class feature_image, - typename box_generator - > - void setup_hashed_features ( - scan_image_boxes<feature_image<feature_extractor, projection_hash>,box_generator>& scanner, - const image_array& images, - int bits, - unsigned long num_samples = 200000 - ) - { - // make sure requires clause is not broken - DLIB_ASSERT(0 < bits && bits <= 32 && - num_samples > 1 && - images.size() > 0, - "\t void setup_hashed_features()" - << "\n\t Invalid inputs were given to this function. " - << "\n\t bits: " << bits - << "\n\t num_samples: " << num_samples - << "\n\t images.size(): " << images.size() - ); - - feature_extractor fe; - setup_hashed_features(scanner, images, fe, bits, num_samples); - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_SETUP_HAShED_FEATURES_Hh_ - - |