Commit 01de65c2 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

Merge pull request #7887 from kevinhughes27:traincascade-baseformat-fix

parents 8d6500be 0d32bec5
...@@ -412,6 +412,7 @@ bool CvCascadeClassifier::readStages( const FileNode &node) ...@@ -412,6 +412,7 @@ bool CvCascadeClassifier::readStages( const FileNode &node)
} }
// For old Haar Classifier file saving // For old Haar Classifier file saving
#define ICV_HAAR_TYPE_ID "opencv-haar-classifier"
#define ICV_HAAR_SIZE_NAME "size" #define ICV_HAAR_SIZE_NAME "size"
#define ICV_HAAR_STAGES_NAME "stages" #define ICV_HAAR_STAGES_NAME "stages"
#define ICV_HAAR_TREES_NAME "trees" #define ICV_HAAR_TREES_NAME "trees"
...@@ -434,11 +435,12 @@ void CvCascadeClassifier::save( const string filename, bool baseFormat ) ...@@ -434,11 +435,12 @@ void CvCascadeClassifier::save( const string filename, bool baseFormat )
if ( !fs.isOpened() ) if ( !fs.isOpened() )
return; return;
fs << FileStorage::getDefaultObjectName(filename) << "{"; fs << FileStorage::getDefaultObjectName(filename);
if ( !baseFormat ) if ( !baseFormat )
{ {
Mat featureMap; Mat featureMap;
getUsedFeaturesIdxMap( featureMap ); getUsedFeaturesIdxMap( featureMap );
fs << "{";
writeParams( fs ); writeParams( fs );
fs << CC_STAGE_NUM << (int)stageClassifiers.size(); fs << CC_STAGE_NUM << (int)stageClassifiers.size();
writeStages( fs, featureMap ); writeStages( fs, featureMap );
...@@ -450,6 +452,7 @@ void CvCascadeClassifier::save( const string filename, bool baseFormat ) ...@@ -450,6 +452,7 @@ void CvCascadeClassifier::save( const string filename, bool baseFormat )
CvSeq* weak; CvSeq* weak;
if ( cascadeParams.featureType != CvFeatureParams::HAAR ) if ( cascadeParams.featureType != CvFeatureParams::HAAR )
CV_Error( CV_StsBadFunc, "old file format is used for Haar-like features only"); CV_Error( CV_StsBadFunc, "old file format is used for Haar-like features only");
fs << "{:" ICV_HAAR_TYPE_ID;
fs << ICV_HAAR_SIZE_NAME << "[:" << cascadeParams.winSize.width << fs << ICV_HAAR_SIZE_NAME << "[:" << cascadeParams.winSize.width <<
cascadeParams.winSize.height << "]"; cascadeParams.winSize.height << "]";
fs << ICV_HAAR_STAGES_NAME << "["; fs << ICV_HAAR_STAGES_NAME << "[";
......
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