diff --git a/sdk/openbr_plugin.cpp b/sdk/openbr_plugin.cpp index fb3d3c8..7215a29 100644 --- a/sdk/openbr_plugin.cpp +++ b/sdk/openbr_plugin.cpp @@ -112,13 +112,12 @@ float File::label() const const QVariant variant = value("Label"); if (variant.isNull()) return -1; - if (variant.canConvert(QVariant::Double)) { - bool ok; - float val = variant.toFloat(&ok); - if (ok) return val; - } + if (Globals->classes.contains(variant.toString())) + return Globals->classes.value(variant.toString()); - return Globals->classes.value(variant.toString(), -1); + bool ok; + const float val = variant.toFloat(&ok); + return ok ? val : -1; } void File::remove(const QString &key) diff --git a/sdk/plugins/eigen3.cpp b/sdk/plugins/eigen3.cpp index d9c2c99..e5a3154 100644 --- a/sdk/plugins/eigen3.cpp +++ b/sdk/plugins/eigen3.cpp @@ -276,10 +276,10 @@ class LDA : public Transform int dimsIn = ldaTrainingSet.first().m().rows * ldaTrainingSet.first().m().cols; - // MM ensures that classes values range from 0 to numClasses-1. - QList classes = trainingSet.labels(); // PCA doesn't project metadata + // OpenBR ensures that class values range from 0 to numClasses-1. + QList classes = trainingSet.labels(); QMap classCounts = trainingSet.labelCounts(); - int numClasses = classCounts.size(); + const int numClasses = classCounts.size(); // Map Eigen into OpenCV Eigen::MatrixXd data = Eigen::MatrixXd(dimsIn, instances);