From 1edab12068fe04c87fee7cfbc976c0bbe0bfad3f Mon Sep 17 00:00:00 2001 From: "marina.kolpakova" Date: Tue, 13 Nov 2012 23:08:19 +0400 Subject: [PATCH] fix for negative confidence --- modules/objdetect/src/softcascade.cpp | 5 +++-- modules/objdetect/test/test_softcascade.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/objdetect/src/softcascade.cpp b/modules/objdetect/src/softcascade.cpp index e3bcdfe67..8f37c1be1 100644 --- a/modules/objdetect/src/softcascade.cpp +++ b/modules/objdetect/src/softcascade.cpp @@ -232,7 +232,7 @@ struct cv::SCascade::Fields float detectionScore = 0.f; const Octave& octave = *(level.octave); - int stBegin = octave.index * octave.stages, stEnd = stBegin + 1024;//octave.stages; + int stBegin = octave.index * octave.stages, stEnd = stBegin + octave.stages; int st = stBegin; for(; st < stEnd; ++st) @@ -270,7 +270,8 @@ struct cv::SCascade::Fields if (detectionScore <= stage.threshold) return; } - level.addDetection(dx, dy, detectionScore, detections); + if (detectionScore > 0) + level.addDetection(dx, dy, detectionScore, detections); } octIt_t fitOctave(const float& logFactor) diff --git a/modules/objdetect/test/test_softcascade.cpp b/modules/objdetect/test/test_softcascade.cpp index b5632400a..f9141c2a9 100644 --- a/modules/objdetect/test/test_softcascade.cpp +++ b/modules/objdetect/test/test_softcascade.cpp @@ -66,7 +66,7 @@ TEST(SCascade, detect) std::vector objects; cascade.detect(colored, cv::noArray(), objects); - ASSERT_EQ((int)objects.size(), 3498); + ASSERT_EQ(1459, (int)objects.size()); } TEST(SCascade, detectSeparate) @@ -83,7 +83,7 @@ TEST(SCascade, detectSeparate) cv::Mat rects, confs; cascade.detect(colored, cv::noArray(), rects, confs); - ASSERT_EQ(confs.cols, 3498); + ASSERT_EQ(1459, confs.cols); } TEST(SCascade, detectRoi) @@ -102,7 +102,7 @@ TEST(SCascade, detectRoi) rois.push_back(cv::Rect(0, 0, 640, 480)); cascade.detect(colored, rois, objects); - ASSERT_EQ((int)objects.size(), 3498); + ASSERT_EQ(1459, (int)objects.size()); } TEST(SCascade, detectNoRoi) @@ -121,5 +121,5 @@ TEST(SCascade, detectNoRoi) cascade.detect(colored, rois, objects); - ASSERT_EQ((int)objects.size(), 0); + ASSERT_EQ(0, (int)objects.size()); } \ No newline at end of file