diff --git a/openbr/core/boost.cpp b/openbr/core/boost.cpp index 325cd21..ff06286 100644 --- a/openbr/core/boost.cpp +++ b/openbr/core/boost.cpp @@ -582,11 +582,9 @@ void CascadeBoostTrainData::get_ord_var_data( CvDTreeNode* n, int vi, float* ord // For this feature, have we precalculated all of the feature responses? if (vi < numPrecalcVal) { - for (int i = 0; i < nodeSampleCount; i++) { - int idx = (*sortedIndices)[i]; - idx = sampleIndices[idx]; - ordValuesBuf[i] = valCache.at(vi, idx); - } + float *p = valCache.ptr(vi); + for (int i = 0; i < nodeSampleCount; i++) + ordValuesBuf[i] = p[sampleIndices[(*sortedIndices)[i]]]; } else { for (int i = 0; i < nodeSampleCount; i++) { int idx = (*sortedIndices)[i]; @@ -762,7 +760,7 @@ void CascadeBoostTrainData::precalculate() parallel_for_(Range(minPrecalc, numPrecalcVal), FeaturePrecalc(featureEvaluator, &valCache, sample_count)); - cout << "Precalculation time (ms): " << time.elapsed() << endl; + cout << "Precalculation time (min): " << time.elapsed()/1000/60. << endl; } //-------------------------------- CascadeBoostTree ---------------------------------------- diff --git a/openbr/plugins/imgproc/if.cpp b/openbr/plugins/imgproc/if.cpp index 229ab8c..800546b 100644 --- a/openbr/plugins/imgproc/if.cpp +++ b/openbr/plugins/imgproc/if.cpp @@ -22,12 +22,12 @@ class IfTransform : public MetaTransform BR_PROPERTY(QString, comparison, "e") BR_PROPERTY(bool, projectOnEmpty, false) - bool compare(const QString &metadata) const + bool compare(const QVariant &metadata) const { bool result, ok1 = true, ok2 = true; - if (comparison == "empty") - result = metadata.isEmpty(); + if (comparison == "empty") + result = metadata.isNull() || (metadata.canConvert() && metadata.toString().isEmpty()); else if (comparison == "e") result = metadata == value; else if (comparison == "ne") @@ -41,7 +41,7 @@ class IfTransform : public MetaTransform else if (comparison == "ge") result = metadata.toFloat(&ok1) >= value.toFloat(&ok2); else if (comparison == "c") // contains - result = metadata.contains(value); + result = metadata.toString().contains(value); else qFatal("Unrecognized comparison string."); @@ -57,14 +57,14 @@ public: if (transform->trainable) { TemplateList passed; for (int i=0; i(key, QString()))) + if ((data[i].file.contains(key) || projectOnEmpty) && compare(data[i].file.value(key))) passed.append(data[i]); transform->train(passed); } } void project(const Template &src, Template &dst) const { - if ((src.file.contains(key) || projectOnEmpty) && compare(src.file.get(key, QString()))) + if ((src.file.contains(key) || projectOnEmpty) && compare(src.file.value(key))) transform->project(src, dst); else dst = src; @@ -73,7 +73,7 @@ public: void project(const TemplateList &src, TemplateList &dst) const { TemplateList ifTrue, ifFalse; foreach (const Template &t, src) { - if ((t.file.contains(key) || projectOnEmpty) && compare(t.file.get(key, QString()))) + if ((t.file.contains(key) || projectOnEmpty) && compare(t.file.value(key))) ifTrue.append(t); else ifFalse.append(t); diff --git a/openbr/plugins/imgproc/pad.cpp b/openbr/plugins/imgproc/pad.cpp index 3ee7271..46e7a9e 100644 --- a/openbr/plugins/imgproc/pad.cpp +++ b/openbr/plugins/imgproc/pad.cpp @@ -36,7 +36,7 @@ private: int top, bottom, left, right; top = percent*src.m().rows; bottom = percent*src.m().rows; left = percent*src.m().cols; right = percent*src.m().cols; - OpenCVUtils::pad(src, dst, true, QMargins(top,bottom,left,right), true, true, border, value); + OpenCVUtils::pad(src, dst, true, QMargins(left, top, right, bottom), true, true, border, value); } };