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