summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/image_processing/setup_hashed_features.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/image_processing/setup_hashed_features.h')
-rw-r--r--ml/dlib/dlib/image_processing/setup_hashed_features.h219
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_
-
-