Commit 95548c98 authored by Vlad Shakhuro's avatar Vlad Shakhuro

Fix waldboost interface

parent 6c9712de
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment