2016-08-31 4 views
0

Когда я тренируюсь мой классификатор с использованием opencv_traincascade с помощью локального бинарного шаблона (LBP), я получаю это написано на консоли:opencv_traincascade ряд особенностей

Number of unique features given windowSize [50,28] : 51408 

Как рассчитывается это число?

+1

Вы можете найти некоторые детали в http://stackoverflow.com/questions/22565531/understanding-opencv-lbp -implementation –

ответ

2

Как обычно в OpenCV вы можете проверить исходный код. Он в основном вычисляется из размера окна.

Это номер выходит из featureEvaluator->getNumFeatures(). См here:

cout << "Number of unique features given windowSize [" 
     << _cascadeParams.winSize.width << "," 
     << _cascadeParams.winSize.height << "] : " 
     << featureEvaluator->getNumFeatures() << "" << endl; 

Эта функция просто возвращает numFeatures. См here:

int getNumFeatures() const { return numFeatures; } 

Для функций LPB это число вычисляется в generateFeatures:

void CvLBPEvaluator::generateFeatures() 
{ 
    int offset = winSize.width + 1; 
    for(int x = 0; x < winSize.width; x++) 
     for(int y = 0; y < winSize.height; y++) 
      for(int w = 1; w <= winSize.width/3; w++) 
       for(int h = 1; h <= winSize.height/3; h++) 
        if ((x+3*w <= winSize.width) && (y+3*h <= winSize.height)) 
         features.push_back(Feature(offset, x, y, w, h)); 
    numFeatures = (int)features.size(); 
} 
+0

Thanks.Can Я нахожу этот код в Ubuntu тоже? –

+0

Просмотрите папку установки opencv. Я не могу сейчас искать точный путь, но он будет там: D – Miki

+0

Вы знаете объяснение кода выше? Я изучаю LBP в течение некоторого времени, но не могу понять логики за этими несколькими строками кода. Например, почему ширина и высота разделены на 3? –

Смежные вопросы