WeakClassifierHaarFeature::WeakClassifierHaarFeature(Size patchSize) { m_feature = new FeatureHaar(patchSize); generateRandomClassifier(); m_feature->getInitialDistribution((EstimatedGaussDistribution*) m_classifier->getDistribution(-1)); m_feature->getInitialDistribution((EstimatedGaussDistribution*) m_classifier->getDistribution(1)); }
WeakClassifierHaarFeature::WeakClassifierHaarFeature() { sigma = 1; mean = 0; EstimatedGaussDistribution* m_posSamples = new EstimatedGaussDistribution(); EstimatedGaussDistribution* m_negSamples = new EstimatedGaussDistribution(); generateRandomClassifier( m_posSamples, m_negSamples ); getInitialDistribution( (EstimatedGaussDistribution*) m_classifier->getDistribution( -1 ) ); getInitialDistribution( (EstimatedGaussDistribution*) m_classifier->getDistribution( 1 ) ); }
BaseClassifier::BaseClassifier( int numWeakClassifier, int iterationInit ) { this->m_numWeakClassifier = numWeakClassifier; this->m_iterationInit = iterationInit; weakClassifier = new WeakClassifierHaarFeature*[numWeakClassifier + iterationInit]; m_idxOfNewWeakClassifier = numWeakClassifier; generateRandomClassifier(); m_referenceWeakClassifier = false; m_selectedClassifier = 0; m_wCorrect.assign( numWeakClassifier + iterationInit, 0 ); m_wWrong.assign( numWeakClassifier + iterationInit, 0 ); for ( int curWeakClassifier = 0; curWeakClassifier < numWeakClassifier + iterationInit; curWeakClassifier++ ) m_wWrong[curWeakClassifier] = m_wCorrect[curWeakClassifier] = 1; }