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 | 122 | maskFile.insert("rows", scores.rows); |
| 123 | 123 | maskFile.insert("columns", scores.cols); |
| 124 | 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 | 127 | // Make comparisons |
| 128 | 128 | QList<Comparison> comparisons; comparisons.reserve(scores.rows*scores.cols); | ... | ... |
sdk/openbr_plugin.cpp
| ... | ... | @@ -383,31 +383,25 @@ QStringList FileList::names() const |
| 383 | 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 | 386 | void FileList::sort(const QString& key) |
| 393 | 387 | { |
| 394 | 388 | if (size() <= 1) return; |
| 395 | 389 | |
| 396 | - QList<MetadataPair> metadata; | |
| 390 | + QList<QString> metadata; | |
| 391 | + FileList sortedList; | |
| 397 | 392 | |
| 398 | 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 | 407 | QList<float> FileList::labels() const | ... | ... |
sdk/plugins/stasm.cpp
| ... | ... | @@ -52,9 +52,11 @@ class StasmTransform : public UntrainableTransform |
| 52 | 52 | qPrintable(src.file.name), reinterpret_cast<char*>(src.m().data), src.m().cols, src.m().rows, |
| 53 | 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 | 61 | for (int i = 0; i < nlandmarks; i++) |
| 60 | 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 | 103 | { |
| 104 | 104 | (void) b; // Query template isn't checked |
| 105 | 105 | foreach (const QString &key, Globals->filters.keys()) { |
| 106 | + bool keep = false; | |
| 106 | 107 | const QString metadata = a.file.getString(key, ""); |
| 107 | 108 | if (metadata.isEmpty()) continue; |
| 108 | 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 | 117 | return 0; |
| 114 | 118 | } | ... | ... |