Commit ee63cd2e38802c023f7422581106851ce06a98d5

Authored by Scott Klum
1 parent 28a1f405

minNeighbors was actually rect class count

Showing 1 changed file with 9 additions and 7 deletions
openbr/core/opencvutils.cpp
... ... @@ -448,7 +448,7 @@ void OpenCVUtils::group(QList<Rect> &rects, QList<float> &confidences, float con
448 448 vector<Rect> rrects(nClasses);
449 449  
450 450 // Total number of rects in each class
451   - vector<int> neighbors(nClasses, 0);
  451 + vector<int> neighbors(nClasses, -1);
452 452 vector<float> classConfidence(nClasses, useMax ? -std::numeric_limits<float>::max() : 0);
453 453  
454 454 for (size_t i = 0; i < labels.size(); i++)
... ... @@ -465,12 +465,14 @@ void OpenCVUtils::group(QList&lt;Rect&gt; &amp;rects, QList&lt;float&gt; &amp;confidences, float con
465 465 // Find average rectangle for all classes
466 466 for (int i = 0; i < nClasses; i++)
467 467 {
468   - Rect r = rrects[i];
469   - float s = 1.f/neighbors[i];
470   - rrects[i] = Rect(saturate_cast<int>(r.x*s),
471   - saturate_cast<int>(r.y*s),
472   - saturate_cast<int>(r.width*s),
473   - saturate_cast<int>(r.height*s));
  468 + if (neighbors[i] > 0) {
  469 + Rect r = rrects[i];
  470 + float s = 1.f/(neighbors[i]+1);
  471 + rrects[i] = Rect(saturate_cast<int>(r.x*s),
  472 + saturate_cast<int>(r.y*s),
  473 + saturate_cast<int>(r.width*s),
  474 + saturate_cast<int>(r.height*s));
  475 + }
474 476 }
475 477  
476 478 rects.clear();
... ...