Commit 857be2577cc18cefc8386cab7d52e0b06efe5f17

Authored by JordanCheney
1 parent 02f50481

Exposed minNeighbors parameter in Viola Jones detector

Showing 1 changed file with 4 additions and 2 deletions
openbr/plugins/cascade.cpp
@@ -199,6 +199,7 @@ class CascadeTransform : public MetaTransform @@ -199,6 +199,7 @@ class CascadeTransform : public MetaTransform
199 Q_OBJECT 199 Q_OBJECT
200 Q_PROPERTY(QString model READ get_model WRITE set_model RESET reset_model STORED false) 200 Q_PROPERTY(QString model READ get_model WRITE set_model RESET reset_model STORED false)
201 Q_PROPERTY(int minSize READ get_minSize WRITE set_minSize RESET reset_minSize STORED false) 201 Q_PROPERTY(int minSize READ get_minSize WRITE set_minSize RESET reset_minSize STORED false)
  202 + Q_PROPERTY(int minNeighbors READ get_minNeighbors WRITE set_minNeighbors RESET reset_minNeighbors STORED false)
202 Q_PROPERTY(bool ROCMode READ get_ROCMode WRITE set_ROCMode RESET reset_ROCMode STORED false) 203 Q_PROPERTY(bool ROCMode READ get_ROCMode WRITE set_ROCMode RESET reset_ROCMode STORED false)
203 204
204 // Training parameters 205 // Training parameters
@@ -223,6 +224,7 @@ class CascadeTransform : public MetaTransform @@ -223,6 +224,7 @@ class CascadeTransform : public MetaTransform
223 224
224 BR_PROPERTY(QString, model, "FrontalFace") 225 BR_PROPERTY(QString, model, "FrontalFace")
225 BR_PROPERTY(int, minSize, 64) 226 BR_PROPERTY(int, minSize, 64)
  227 + BR_PROPERTY(int, minNeighbors, 5)
226 BR_PROPERTY(bool, ROCMode, false) 228 BR_PROPERTY(bool, ROCMode, false)
227 229
228 // Training parameters - Default values provided trigger OpenCV defaults 230 // Training parameters - Default values provided trigger OpenCV defaults
@@ -392,8 +394,8 @@ class CascadeTransform : public MetaTransform @@ -392,8 +394,8 @@ class CascadeTransform : public MetaTransform
392 std::vector<Rect> rects; 394 std::vector<Rect> rects;
393 std::vector<int> rejectLevels; 395 std::vector<int> rejectLevels;
394 std::vector<double> levelWeights; 396 std::vector<double> levelWeights;
395 - if (ROCMode) cascade->detectMultiScale(m, rects, rejectLevels, levelWeights, 1.2, 5, (enrollAll ? 0 : CASCADE_FIND_BIGGEST_OBJECT) | CASCADE_SCALE_IMAGE, Size(minSize, minSize), Size(), true);  
396 - else cascade->detectMultiScale(m, rects, 1.2, 5, enrollAll ? 0 : CASCADE_FIND_BIGGEST_OBJECT, Size(minSize, minSize)); 397 + if (ROCMode) cascade->detectMultiScale(m, rects, rejectLevels, levelWeights, 1.2, minNeighbors, (enrollAll ? 0 : CASCADE_FIND_BIGGEST_OBJECT) | CASCADE_SCALE_IMAGE, Size(minSize, minSize), Size(), true);
  398 + else cascade->detectMultiScale(m, rects, 1.2, minNeighbors, enrollAll ? 0 : CASCADE_FIND_BIGGEST_OBJECT, Size(minSize, minSize));
397 399
398 if (!enrollAll && rects.empty()) 400 if (!enrollAll && rects.empty())
399 rects.push_back(Rect(0, 0, m.cols, m.rows)); 401 rects.push_back(Rect(0, 0, m.cols, m.rows));