예제 #1
0
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;
}