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,13 +112,12 @@ float File::label() const
112 const QVariant variant = value("Label"); 112 const QVariant variant = value("Label");
113 if (variant.isNull()) return -1; 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 void File::remove(const QString &key) 123 void File::remove(const QString &key)
sdk/plugins/eigen3.cpp
@@ -276,10 +276,10 @@ class LDA : public Transform @@ -276,10 +276,10 @@ class LDA : public Transform
276 276
277 int dimsIn = ldaTrainingSet.first().m().rows * ldaTrainingSet.first().m().cols; 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 QMap<int, int> classCounts = trainingSet.labelCounts(); 281 QMap<int, int> classCounts = trainingSet.labelCounts();
282 - int numClasses = classCounts.size(); 282 + const int numClasses = classCounts.size();
283 283
284 // Map Eigen into OpenCV 284 // Map Eigen into OpenCV
285 Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances); 285 Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances);