123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- #ifndef __OPENCV_PREDICT_COLLECTOR_HPP__
- #define __OPENCV_PREDICT_COLLECTOR_HPP__
- #include <vector>
- #include <map>
- #include <utility>
- #include <cfloat>
- #include "opencv2/core/cvstd.hpp"
- namespace cv {
- namespace face {
- class CV_EXPORTS_W PredictCollector
- {
- public:
- virtual ~PredictCollector() {}
-
- virtual void init(size_t size) { (void)size; }
-
- virtual bool collect(int label, double dist) = 0;
- };
- class CV_EXPORTS_W StandardCollector : public PredictCollector
- {
- public:
- struct PredictResult
- {
- int label;
- double distance;
- PredictResult(int label_ = -1, double distance_ = DBL_MAX) : label(label_), distance(distance_) {}
- };
- protected:
- double threshold;
- PredictResult minRes;
- std::vector<PredictResult> data;
- public:
-
- StandardCollector(double threshold_ = DBL_MAX);
-
- void init(size_t size);
-
- bool collect(int label, double dist);
-
- CV_WRAP int getMinLabel() const;
-
- CV_WRAP double getMinDist() const;
-
- CV_WRAP std::vector< std::pair<int, double> > getResults(bool sorted = false) const;
-
- std::map<int, double> getResultsMap() const;
-
- CV_WRAP static Ptr<StandardCollector> create(double threshold = DBL_MAX);
- };
- }
- }
- #endif
|