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