From 700eae96e9c79d1775301f81f3ef78be1844a867 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Wed, 6 Mar 2013 18:35:25 -0500 Subject: [PATCH] Various bug fixes --- sdk/core/plot.cpp | 2 +- sdk/openbr_plugin.cpp | 26 ++++++++++---------------- sdk/plugins/stasm.cpp | 8 +++++--- sdk/plugins/validate.cpp | 8 ++++++-- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/sdk/core/plot.cpp b/sdk/core/plot.cpp index 8eb874f..53982a7 100644 --- a/sdk/core/plot.cpp +++ b/sdk/core/plot.cpp @@ -122,7 +122,7 @@ float Evaluate(const QString &simmat, const QString &mask, const QString &csv) maskFile.insert("rows", scores.rows); maskFile.insert("columns", scores.cols); const Mat masks = BEE::readMask(maskFile); - if (scores.size() != masks.size()) qFatal("Simmat %i /Mask %i size mismatch.", scores.size(), mask.size()); + if (scores.size() != masks.size()) qFatal("Simmat/Mask size mismatch."); // Make comparisons QList comparisons; comparisons.reserve(scores.rows*scores.cols); diff --git a/sdk/openbr_plugin.cpp b/sdk/openbr_plugin.cpp index 9a539fc..9fffe4b 100644 --- a/sdk/openbr_plugin.cpp +++ b/sdk/openbr_plugin.cpp @@ -383,31 +383,25 @@ QStringList FileList::names() const return names; } -typedef QPair MetadataPair; -static bool comparator( const MetadataPair &l, const MetadataPair &r) -{ - return l.first < r.first; -} - void FileList::sort(const QString& key) { if (size() <= 1) return; - QList metadata; + QList metadata; + FileList sortedList; for (int i = 0; i < size(); i++) { - MetadataPair pair = qMakePair(at(i).get(key).toString(), i); - metadata.append(pair); + if (at(i).contains(key)) { + metadata.append(at(i).get(key).toString()); + } + else sortedList.push_back(at(i)); } - std::sort(metadata.begin(), metadata.end(), comparator); - - FileList newList; - - for (int i = 0; i < metadata.size(); i++) - newList.append(at(metadata[i].second)); + typedef QPair Pair; + foreach (const Pair &pair, Common::Sort(metadata, true)) + sortedList.prepend(at(pair.second)); - *this = newList; + *this = sortedList; } QList FileList::labels() const diff --git a/sdk/plugins/stasm.cpp b/sdk/plugins/stasm.cpp index f310d57..2f8305c 100644 --- a/sdk/plugins/stasm.cpp +++ b/sdk/plugins/stasm.cpp @@ -52,9 +52,11 @@ class StasmTransform : public UntrainableTransform qPrintable(src.file.name), reinterpret_cast(src.m().data), src.m().cols, src.m().rows, src.m(), (src.m().channels() == 3), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-68-1d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-76-2d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/")); - if (nlandmarks == 0) qWarning("Unable to detect Stasm landmarks"); - - dst = src; + if (nlandmarks == 0) { + qWarning("Unable to detect Stasm landmarks"); + dst.file.setBool("FTE"); + dst.m() = Mat(); + } for (int i = 0; i < nlandmarks; i++) dst.file.appendLandmark(QPointF(landmarks[2 * i], landmarks[2 * i + 1])); diff --git a/sdk/plugins/validate.cpp b/sdk/plugins/validate.cpp index 9ed24ff..db9a2a5 100644 --- a/sdk/plugins/validate.cpp +++ b/sdk/plugins/validate.cpp @@ -103,12 +103,16 @@ class FilterDistance : public Distance { (void) b; // Query template isn't checked foreach (const QString &key, Globals->filters.keys()) { + bool keep = false; const QString metadata = a.file.getString(key, ""); if (metadata.isEmpty()) continue; foreach (const QString &value, Globals->filters[key]) { - if (metadata == value) continue; - return -std::numeric_limits::max(); + if (metadata == value) { + keep = true; + break; + } } + if (!keep) return -std::numeric_limits::max(); } return 0; } -- libgit2 0.21.4