diff --git a/openbr/plugins/imgproc/slidingwindow.cpp b/openbr/plugins/imgproc/slidingwindow.cpp index ea54955..7e2df3a 100644 --- a/openbr/plugins/imgproc/slidingwindow.cpp +++ b/openbr/plugins/imgproc/slidingwindow.cpp @@ -187,22 +187,29 @@ class SlidingWindowTransform : public MetaTransform confidences.append(maxConfidence); } - if (!enrollAll && rects.empty()) { - rects.append(Rect(0, 0, imageSize.width, imageSize.height)); - confidences.append(-std::numeric_limits::max()); - } - const float minConfidence = t.file.get("MinConfidence", this->minConfidence); + QList rectsAboveMinConfidence; + QList confidencesAboveMinConfidence; for (int i=0; i= minConfidence || (!enrollAll && confidences[i] == -std::numeric_limits::max())) { - Template u = t; - u.file.set("Confidence", confidences[i]); - const QRectF rect = OpenCVUtils::fromRect(rects[i]); - u.file.appendRect(rect); - u.file.set(outputVariable, rect); - dst.append(u); + if (ROCMode || confidences[i] >= minConfidence) { + rectsAboveMinConfidence.append(OpenCVUtils::fromRect(rects[i])); + confidencesAboveMinConfidence.append(confidences[i]); } } + + if (!enrollAll && rectsAboveMinConfidence.isEmpty()) { + rectsAboveMinConfidence.append(QRectF(0, 0, t.m().cols, t.m().rows)); + confidencesAboveMinConfidence.append(-std::numeric_limits::max()); + } + + for (int i=0; i