Commit 700eae96e9c79d1775301f81f3ef78be1844a867
1 parent
e19e4805
Various bug fixes
Showing
4 changed files
with
22 additions
and
22 deletions
sdk/core/plot.cpp
| @@ -122,7 +122,7 @@ float Evaluate(const QString &simmat, const QString &mask, const QString &csv) | @@ -122,7 +122,7 @@ float Evaluate(const QString &simmat, const QString &mask, const QString &csv) | ||
| 122 | maskFile.insert("rows", scores.rows); | 122 | maskFile.insert("rows", scores.rows); |
| 123 | maskFile.insert("columns", scores.cols); | 123 | maskFile.insert("columns", scores.cols); |
| 124 | const Mat masks = BEE::readMask(maskFile); | 124 | const Mat masks = BEE::readMask(maskFile); |
| 125 | - if (scores.size() != masks.size()) qFatal("Simmat %i /Mask %i size mismatch.", scores.size(), mask.size()); | 125 | + if (scores.size() != masks.size()) qFatal("Simmat/Mask size mismatch."); |
| 126 | 126 | ||
| 127 | // Make comparisons | 127 | // Make comparisons |
| 128 | QList<Comparison> comparisons; comparisons.reserve(scores.rows*scores.cols); | 128 | QList<Comparison> comparisons; comparisons.reserve(scores.rows*scores.cols); |
sdk/openbr_plugin.cpp
| @@ -383,31 +383,25 @@ QStringList FileList::names() const | @@ -383,31 +383,25 @@ QStringList FileList::names() const | ||
| 383 | return names; | 383 | return names; |
| 384 | } | 384 | } |
| 385 | 385 | ||
| 386 | -typedef QPair<QString,int> MetadataPair; | ||
| 387 | -static bool comparator( const MetadataPair &l, const MetadataPair &r) | ||
| 388 | -{ | ||
| 389 | - return l.first < r.first; | ||
| 390 | -} | ||
| 391 | - | ||
| 392 | void FileList::sort(const QString& key) | 386 | void FileList::sort(const QString& key) |
| 393 | { | 387 | { |
| 394 | if (size() <= 1) return; | 388 | if (size() <= 1) return; |
| 395 | 389 | ||
| 396 | - QList<MetadataPair> metadata; | 390 | + QList<QString> metadata; |
| 391 | + FileList sortedList; | ||
| 397 | 392 | ||
| 398 | for (int i = 0; i < size(); i++) { | 393 | for (int i = 0; i < size(); i++) { |
| 399 | - MetadataPair pair = qMakePair(at(i).get(key).toString(), i); | ||
| 400 | - metadata.append(pair); | 394 | + if (at(i).contains(key)) { |
| 395 | + metadata.append(at(i).get(key).toString()); | ||
| 396 | + } | ||
| 397 | + else sortedList.push_back(at(i)); | ||
| 401 | } | 398 | } |
| 402 | 399 | ||
| 403 | - std::sort(metadata.begin(), metadata.end(), comparator); | ||
| 404 | - | ||
| 405 | - FileList newList; | ||
| 406 | - | ||
| 407 | - for (int i = 0; i < metadata.size(); i++) | ||
| 408 | - newList.append(at(metadata[i].second)); | 400 | + typedef QPair<QString,int> Pair; |
| 401 | + foreach (const Pair &pair, Common::Sort(metadata, true)) | ||
| 402 | + sortedList.prepend(at(pair.second)); | ||
| 409 | 403 | ||
| 410 | - *this = newList; | 404 | + *this = sortedList; |
| 411 | } | 405 | } |
| 412 | 406 | ||
| 413 | QList<float> FileList::labels() const | 407 | QList<float> FileList::labels() const |
sdk/plugins/stasm.cpp
| @@ -52,9 +52,11 @@ class StasmTransform : public UntrainableTransform | @@ -52,9 +52,11 @@ class StasmTransform : public UntrainableTransform | ||
| 52 | qPrintable(src.file.name), reinterpret_cast<char*>(src.m().data), src.m().cols, src.m().rows, | 52 | qPrintable(src.file.name), reinterpret_cast<char*>(src.m().data), src.m().cols, src.m().rows, |
| 53 | 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/")); | 53 | 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/")); |
| 54 | 54 | ||
| 55 | - if (nlandmarks == 0) qWarning("Unable to detect Stasm landmarks"); | ||
| 56 | - | ||
| 57 | - dst = src; | 55 | + if (nlandmarks == 0) { |
| 56 | + qWarning("Unable to detect Stasm landmarks"); | ||
| 57 | + dst.file.setBool("FTE"); | ||
| 58 | + dst.m() = Mat(); | ||
| 59 | + } | ||
| 58 | 60 | ||
| 59 | for (int i = 0; i < nlandmarks; i++) | 61 | for (int i = 0; i < nlandmarks; i++) |
| 60 | dst.file.appendLandmark(QPointF(landmarks[2 * i], landmarks[2 * i + 1])); | 62 | dst.file.appendLandmark(QPointF(landmarks[2 * i], landmarks[2 * i + 1])); |
sdk/plugins/validate.cpp
| @@ -103,12 +103,16 @@ class FilterDistance : public Distance | @@ -103,12 +103,16 @@ class FilterDistance : public Distance | ||
| 103 | { | 103 | { |
| 104 | (void) b; // Query template isn't checked | 104 | (void) b; // Query template isn't checked |
| 105 | foreach (const QString &key, Globals->filters.keys()) { | 105 | foreach (const QString &key, Globals->filters.keys()) { |
| 106 | + bool keep = false; | ||
| 106 | const QString metadata = a.file.getString(key, ""); | 107 | const QString metadata = a.file.getString(key, ""); |
| 107 | if (metadata.isEmpty()) continue; | 108 | if (metadata.isEmpty()) continue; |
| 108 | foreach (const QString &value, Globals->filters[key]) { | 109 | foreach (const QString &value, Globals->filters[key]) { |
| 109 | - if (metadata == value) continue; | ||
| 110 | - return -std::numeric_limits<float>::max(); | 110 | + if (metadata == value) { |
| 111 | + keep = true; | ||
| 112 | + break; | ||
| 113 | + } | ||
| 111 | } | 114 | } |
| 115 | + if (!keep) return -std::numeric_limits<float>::max(); | ||
| 112 | } | 116 | } |
| 113 | return 0; | 117 | return 0; |
| 114 | } | 118 | } |