Commit 95076d7e8a9451b47d3a8222bb14d728dfeb2288

Authored by Scott Klum
1 parent 7693fd5f

Exposed scale factor

openbr/plugins/metadata/cascade.cpp
... ... @@ -202,7 +202,8 @@ class CascadeTransform : public MetaTransform
202 202 Q_PROPERTY(int minSize READ get_minSize WRITE set_minSize RESET reset_minSize STORED false)
203 203 Q_PROPERTY(int minNeighbors READ get_minNeighbors WRITE set_minNeighbors RESET reset_minNeighbors STORED false)
204 204 Q_PROPERTY(bool ROCMode READ get_ROCMode WRITE set_ROCMode RESET reset_ROCMode STORED false)
205   -
  205 + Q_PROPERTY(float scaleFactor READ get_scaleFactor WRITE set_scaleFactor RESET reset_scaleFactor STORED false)
  206 +
206 207 // Training parameters
207 208 Q_PROPERTY(int numStages READ get_numStages WRITE set_numStages RESET reset_numStages STORED false)
208 209 Q_PROPERTY(int w READ get_w WRITE set_w RESET reset_w STORED false)
... ... @@ -227,7 +228,8 @@ class CascadeTransform : public MetaTransform
227 228 BR_PROPERTY(int, minSize, 64)
228 229 BR_PROPERTY(int, minNeighbors, 5)
229 230 BR_PROPERTY(bool, ROCMode, false)
230   -
  231 + BR_PROPERTY(float, scaleFactor, 1.2)
  232 +
231 233 // Training parameters - Default values provided trigger OpenCV defaults
232 234 BR_PROPERTY(int, numStages, -1)
233 235 BR_PROPERTY(int, w, -1)
... ... @@ -410,8 +412,8 @@ class CascadeTransform : public MetaTransform
410 412 std::vector<Rect> rects;
411 413 std::vector<int> rejectLevels;
412 414 std::vector<double> levelWeights;
413   - if (ROCMode) cascade->detectMultiScale(m, rects, rejectLevels, levelWeights, 1.2, minNeighbors, flags | CASCADE_SCALE_IMAGE, Size(minSize, minSize), Size(), true);
414   - else cascade->detectMultiScale(m, rects, 1.2, minNeighbors, flags, Size(minSize, minSize));
  415 + if (ROCMode) cascade->detectMultiScale(m, rects, rejectLevels, levelWeights, scaleFactor, minNeighbors, flags | CASCADE_SCALE_IMAGE, Size(minSize, minSize), Size(), true);
  416 + else cascade->detectMultiScale(m, rects, scaleFactor, minNeighbors, flags, Size(minSize, minSize));
415 417  
416 418 // It appears that flags is ignored for new model files:
417 419 // http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html#cascadeclassifier-detectmultiscale
... ... @@ -437,7 +439,7 @@ class CascadeTransform : public MetaTransform
437 439 u.file.set("Confidence",-std::numeric_limits<float>::max());
438 440 } else if (rejectLevels.size() > j)
439 441 u.file.set("Confidence", rejectLevels[j]*levelWeights[j]);
440   - else
  442 + else
441 443 u.file.set("Confidence", rects[j].area());
442 444 const QRectF rect = OpenCVUtils::fromRect(rects[j]);
443 445 u.file.appendRect(rect);
... ...