Commit ab5f003bba75337c6129433117604a8957adfd21

Authored by Scott Klum
1 parent 282546e0

Fixed bug enrollAll bug in slidingwindow

openbr/plugins/imgproc/slidingwindow.cpp
... ... @@ -187,22 +187,29 @@ class SlidingWindowTransform : public MetaTransform
187 187 confidences.append(maxConfidence);
188 188 }
189 189  
190   - if (!enrollAll && rects.empty()) {
191   - rects.append(Rect(0, 0, imageSize.width, imageSize.height));
192   - confidences.append(-std::numeric_limits<float>::max());
193   - }
194   -
195 190 const float minConfidence = t.file.get<float>("MinConfidence", this->minConfidence);
  191 + QList<QRectF> rectsAboveMinConfidence;
  192 + QList<float> confidencesAboveMinConfidence;
196 193 for (int i=0; i<rects.size(); i++) {
197   - if (ROCMode || confidences[i] >= minConfidence || (!enrollAll && confidences[i] == -std::numeric_limits<float>::max())) {
198   - Template u = t;
199   - u.file.set("Confidence", confidences[i]);
200   - const QRectF rect = OpenCVUtils::fromRect(rects[i]);
201   - u.file.appendRect(rect);
202   - u.file.set(outputVariable, rect);
203   - dst.append(u);
  194 + if (ROCMode || confidences[i] >= minConfidence) {
  195 + rectsAboveMinConfidence.append(OpenCVUtils::fromRect(rects[i]));
  196 + confidencesAboveMinConfidence.append(confidences[i]);
204 197 }
205 198 }
  199 +
  200 + if (!enrollAll && rectsAboveMinConfidence.isEmpty()) {
  201 + rectsAboveMinConfidence.append(QRectF(0, 0, t.m().cols, t.m().rows));
  202 + confidencesAboveMinConfidence.append(-std::numeric_limits<float>::max());
  203 + }
  204 +
  205 + for (int i=0; i<rectsAboveMinConfidence.size(); i++) {
  206 + Template u(t.file, t.m());
  207 + u.file.set("Confidence", confidencesAboveMinConfidence[i]);
  208 + const QRectF rect = rectsAboveMinConfidence[i];
  209 + u.file.set(outputVariable, rect);
  210 + u.file.appendRect(rect);
  211 + dst.append(u);
  212 + }
206 213 }
207 214 }
208 215  
... ...