DPMDetectorImpl::DPMDetectorImpl( const vector<string>& filenames, const vector<string>& _classNames ) { for( size_t i = 0; i < filenames.size(); i++ ) { const string filename = filenames[i]; if( filename.length() < 5 || filename.substr(filename.length()-4, 4) != ".xml" ) continue; Ptr<DPMCascade> detector = makePtr<DPMCascade>(); // initialization detector->loadCascadeModel( filename.c_str() ); if( detector ) { detectors.push_back( detector ); if( _classNames.empty() ) { classNames.push_back( extractModelName(filename)); } else classNames.push_back( _classNames[i] ); } } }
bool LatentSvmDetector::load( const std::vector<String>& filenames, const std::vector<String>& _classNames ) { clear(); CV_Assert( _classNames.empty() || _classNames.size() == filenames.size() ); for( size_t i = 0; i < filenames.size(); i++ ) { const String filename = filenames[i]; if( filename.length() < 5 || filename.substr(filename.length()-4, 4) != ".xml" ) continue; CvLatentSvmDetector* detector = cvLoadLatentSvmDetector( filename.c_str() ); if( detector ) { detectors.push_back( detector ); if( _classNames.empty() ) { classNames.push_back( extractModelName(filenames[i]) ); } else classNames.push_back( _classNames[i] ); } } return !empty(); }