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] );
        }
    }
}
示例#2
0
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();
}