Commit 700eae96e9c79d1775301f81f3ef78be1844a867

Authored by Scott Klum
1 parent e19e4805

Various bug fixes

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 }
... ...