Commit 7dcdbe009e71c4fe1c1c6be4908ec4e8c7ecece6

Authored by Josh Klontz
1 parent 08930f0b

training label edge case bug fix

sdk/openbr_plugin.cpp
... ... @@ -112,13 +112,12 @@ float File::label() const
112 112 const QVariant variant = value("Label");
113 113 if (variant.isNull()) return -1;
114 114  
115   - if (variant.canConvert(QVariant::Double)) {
116   - bool ok;
117   - float val = variant.toFloat(&ok);
118   - if (ok) return val;
119   - }
  115 + if (Globals->classes.contains(variant.toString()))
  116 + return Globals->classes.value(variant.toString());
120 117  
121   - return Globals->classes.value(variant.toString(), -1);
  118 + bool ok;
  119 + const float val = variant.toFloat(&ok);
  120 + return ok ? val : -1;
122 121 }
123 122  
124 123 void File::remove(const QString &key)
... ...
sdk/plugins/eigen3.cpp
... ... @@ -276,10 +276,10 @@ class LDA : public Transform
276 276  
277 277 int dimsIn = ldaTrainingSet.first().m().rows * ldaTrainingSet.first().m().cols;
278 278  
279   - // MM ensures that classes values range from 0 to numClasses-1.
280   - QList<float> classes = trainingSet.labels<float>(); // PCA doesn't project metadata
  279 + // OpenBR ensures that class values range from 0 to numClasses-1.
  280 + QList<int> classes = trainingSet.labels<int>();
281 281 QMap<int, int> classCounts = trainingSet.labelCounts();
282   - int numClasses = classCounts.size();
  282 + const int numClasses = classCounts.size();
283 283  
284 284 // Map Eigen into OpenCV
285 285 Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances);
... ...