mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-18 17:24:28 +08:00
Fix waldboost interface
This commit is contained in:
@@ -82,7 +82,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
ICFDetector detector;
|
||||
FileStorage fs(model_filename, FileStorage::READ);
|
||||
fs["icfdetector"] >> detector;
|
||||
detector.read(fs["icfdetector"]);
|
||||
fs.release();
|
||||
vector<Rect> objects;
|
||||
Mat img = imread(image_path);
|
||||
|
@@ -94,6 +94,7 @@ int main(int argc, char *argv[])
|
||||
ICFDetector detector;
|
||||
detector.train(pos_path, bg_path, params);
|
||||
FileStorage fs(model_filename, FileStorage::WRITE);
|
||||
fs << "icfdetector" << detector;
|
||||
fs << "icfdetector";
|
||||
detector.write(fs);
|
||||
fs.release();
|
||||
}
|
||||
|
@@ -128,7 +128,7 @@ public:
|
||||
Feature enumeration starts from 0
|
||||
*/
|
||||
virtual std::vector<int> train(const Mat& /*data*/,
|
||||
const Mat& /*labels*/) {return std::vector<int>();}
|
||||
const Mat& /*labels*/) = 0;
|
||||
|
||||
/* Predict object class given object that can compute object features
|
||||
|
||||
@@ -138,21 +138,15 @@ public:
|
||||
is from class +1
|
||||
*/
|
||||
virtual float predict(
|
||||
const Ptr<FeatureEvaluator>& /*feature_evaluator*/) const
|
||||
{return 0.0f;}
|
||||
const Ptr<FeatureEvaluator>& /*feature_evaluator*/) const = 0;
|
||||
|
||||
/* Write WaldBoost to FileStorage */
|
||||
virtual void write(FileStorage& /*fs*/) const {}
|
||||
virtual void write(FileStorage& /*fs*/) const = 0;
|
||||
|
||||
/* Read WaldBoost */
|
||||
virtual void read(const FileNode& /*node*/) {}
|
||||
virtual void read(const FileNode& /*node*/) = 0;
|
||||
};
|
||||
|
||||
void write(FileStorage& fs, String&, const WaldBoost& waldboost);
|
||||
|
||||
void read(const FileNode& node, WaldBoost& w,
|
||||
const WaldBoost& default_value = WaldBoost());
|
||||
|
||||
CV_EXPORTS Ptr<WaldBoost>
|
||||
createWaldBoost(const WaldBoostParams& params = WaldBoostParams());
|
||||
|
||||
|
@@ -163,7 +163,8 @@ void ICFDetector::write(FileStorage& fs) const
|
||||
fs << "{";
|
||||
fs << "model_n_rows" << model_n_rows_;
|
||||
fs << "model_n_cols" << model_n_cols_;
|
||||
fs << "waldboost" << *waldboost_;
|
||||
fs << "waldboost";
|
||||
waldboost_->write(fs);
|
||||
fs << "features" << "[";
|
||||
for( size_t i = 0; i < features_.size(); ++i )
|
||||
{
|
||||
@@ -178,7 +179,7 @@ void ICFDetector::read(const FileNode& node)
|
||||
waldboost_ = Ptr<WaldBoost>(createWaldBoost(WaldBoostParams()));
|
||||
node["model_n_rows"] >> model_n_rows_;
|
||||
node["model_n_cols"] >> model_n_cols_;
|
||||
node["waldboost"] >> *waldboost_;
|
||||
waldboost_->read(node["waldboost"]);
|
||||
FileNode features = node["features"];
|
||||
features_.clear();
|
||||
vector<int> p;
|
||||
|
Reference in New Issue
Block a user