Commit dc7363e18cbcd40c6b6bc2e3094167a246a5cdd1

Authored by Scott Klum
1 parent c9845813

Added convenience projectAndWrite function

Showing 1 changed file with 28 additions and 22 deletions
openbr/core/eval.cpp
... ... @@ -1033,6 +1033,13 @@ float EvalDetection(const QString &predictedGallery, const QString &truthGallery
1033 1033 return averageOverlap;
1034 1034 }
1035 1035  
  1036 +static void projectAndWrite(Transform *t, const Template &src, const QString &filePath)
  1037 +{
  1038 + Template dst;
  1039 + t->project(src,dst);
  1040 + OpenCVUtils::saveImage(dst.m(),filePath);
  1041 +}
  1042 +
1036 1043 float EvalLandmarking(const QString &predictedGallery, const QString &truthGallery, const QString &csv, int normalizationIndexA, int normalizationIndexB, int sampleIndex)
1037 1044 {
1038 1045 qDebug("Evaluating landmarking of %s against %s", qPrintable(predictedGallery), qPrintable(truthGallery));
... ... @@ -1089,39 +1096,38 @@ float EvalLandmarking(const QString &predictedGallery, const QString &truthGalle
1089 1096 QtUtils::touchDir(QDir("landmarking_examples_predicted"));
1090 1097  
1091 1098 // Example
1092   - Transform *t = Transform::make("Open+Draw(verbose,rects=false,location=false)",NULL);
  1099 + {
  1100 + QScopedPointer<Transform> t(Transform::make("Open+Draw(verbose,rects=false,location=false)",NULL));
1093 1101  
1094   - Template drawn;
1095   - t->project(truth[sampleIndex],drawn);
1096   - OpenCVUtils::saveImage(drawn.m(),"landmarking_examples_truth/"+drawn.file.fileName());
1097   - lines.append("Sample,landmarking_examples_truth/"+truth[sampleIndex].file.fileName()+","+QString::number(truth[sampleIndex].file.points().size()));
  1102 + QString filePath = "landmarking_examples_truth/"+truth[sampleIndex].file.fileName();
  1103 + projectAndWrite(t.data(), truth[sampleIndex],filePath);
  1104 + lines.append("Sample,"+filePath+","+QString::number(truth[sampleIndex].file.points().size()));
  1105 + }
1098 1106  
1099 1107 // Get best and worst performing examples
1100 1108 QList< QPair<float,int> > exampleIndices = Common::Sort(imageErrors,true);
1101 1109  
1102   - Transform *t2 = Transform::make("Open+Draw(rects=false)",NULL);
  1110 + QScopedPointer<Transform> t(Transform::make("Open+Draw(rects=false)",NULL));
1103 1111  
1104 1112 const int totalExamples = 10;
1105 1113 for (int i=0; i<totalExamples; i++) {
1106   - Template truthDrawn;
1107   - t2->project(truth[exampleIndices[i].second],truthDrawn);
1108   - OpenCVUtils::saveImage(truthDrawn.m(),"landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName());
1109   - lines.append("EXT,landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName()+","+QString::number(exampleIndices[i].first));
1110   - Template predictedDrawn;
1111   - t2->project(predicted[exampleIndices[i].second],predictedDrawn);
1112   - OpenCVUtils::saveImage(predictedDrawn.m(),"landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName());
1113   - lines.append("EXP,landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName()+","+QString::number(exampleIndices[i].first));
  1114 + QString filePath = "landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName();
  1115 + projectAndWrite(t.data(), truth[exampleIndices[i].second],filePath);
  1116 + lines.append("EXT,"+filePath+","+QString::number(exampleIndices[i].first));
  1117 +
  1118 + filePath = "landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName();
  1119 + projectAndWrite(t.data(), predicted[exampleIndices[i].second],filePath);
  1120 + lines.append("EXP,"+filePath+","+QString::number(exampleIndices[i].first));
1114 1121 }
1115 1122  
1116 1123 for (int i=exampleIndices.size()-1; i>exampleIndices.size()-totalExamples-1; i--) {
1117   - Template truthDrawn;
1118   - t2->project(truth[exampleIndices[i].second],truthDrawn);
1119   - OpenCVUtils::saveImage(truthDrawn.m(),"landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName());
1120   - lines.append("EXT,landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName()+","+QString::number(exampleIndices[i].first));
1121   - Template predictedDrawn;
1122   - t2->project(predicted[exampleIndices[i].second],predictedDrawn);
1123   - OpenCVUtils::saveImage(predictedDrawn.m(),"landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName());
1124   - lines.append("EXP,landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName()+","+QString::number(exampleIndices[i].first));
  1124 + QString filePath = "landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName();
  1125 + projectAndWrite(t.data(), truth[exampleIndices[i].second],filePath);
  1126 + lines.append("EXT,"+filePath+","+QString::number(exampleIndices[i].first));
  1127 +
  1128 + filePath = "landmarking_examples_predicted/"+predicted[exampleIndices[i].second].file.fileName();
  1129 + projectAndWrite(t.data(), predicted[exampleIndices[i].second],filePath);
  1130 + lines.append("EXP,"+filePath+","+QString::number(exampleIndices[i].first));
1125 1131 }
1126 1132  
1127 1133 for (int i=0; i<pointErrors.size(); i++) {
... ...