Merge pull request #5922 from DarwinsBuddy:fix_no_py_load_svm_bug

pull/5971/head
Alexander Alekhin 9 years ago
commit df89e76fb1
  1. 19
      modules/ml/include/opencv2/ml.hpp
  2. 14
      modules/ml/src/ann_mlp.cpp
  3. 11
      modules/ml/src/svm.cpp

@ -719,6 +719,15 @@ public:
Use StatModel::train to train the model. Since %SVM has several parameters, you may want to
find the best parameters for your problem, it can be done with SVM::trainAuto. */
CV_WRAP static Ptr<SVM> create();
/** @brief Loads and creates a serialized svm from a file
*
* Use SVM::save to serialize and store an SVM to disk.
* Load the SVM from this file again, by calling this function with the path to the file.
*
* @param filepath path to serialized svm
*/
CV_WRAP static Ptr<SVM> load(const String& filepath);
};
/****************************************************************************************\
@ -1389,6 +1398,16 @@ public:
Note that the train method has optional flags: ANN_MLP::TrainFlags.
*/
CV_WRAP static Ptr<ANN_MLP> create();
/** @brief Loads and creates a serialized ANN from a file
*
* Use ANN::save to serialize and store an ANN to disk.
* Load the ANN from this file again, by calling this function with the path to the file.
*
* @param filepath path to serialized ANN
*/
CV_WRAP static Ptr<ANN_MLP> load(const String& filepath);
};
/****************************************************************************************\

@ -1317,6 +1317,18 @@ Ptr<ANN_MLP> ANN_MLP::create()
return makePtr<ANN_MLPImpl>();
}
}}
Ptr<ANN_MLP> ANN_MLP::load(const String& filepath)
{
FileStorage fs;
fs.open(filepath, FileStorage::READ);
Ptr<ANN_MLP> ann = makePtr<ANN_MLPImpl>();
((ANN_MLPImpl*)ann.get())->read(fs.getFirstTopLevelNode());
return ann;
}
}}
/* End of file. */

@ -2261,6 +2261,17 @@ Ptr<SVM> SVM::create()
return makePtr<SVMImpl>();
}
Ptr<SVM> SVM::load(const String& filepath)
{
FileStorage fs;
fs.open(filepath, FileStorage::READ);
Ptr<SVM> svm = makePtr<SVMImpl>();
((SVMImpl*)svm.get())->read(fs.getFirstTopLevelNode());
return svm;
}
Mat SVM::getUncompressedSupportVectors() const
{
const SVMImpl* this_ = dynamic_cast<const SVMImpl*>(this);

Loading…
Cancel
Save