Commit 681cd399664102105c1333a9804aa5a767bc76cc

Authored by bhklein
1 parent 89f83838

crop and resize landmark examples

openbr/core/eval.cpp
... ... @@ -898,7 +898,7 @@ float EvalLandmarking(const QString &predictedGallery, const QString &truthGalle
898 898 {
899 899 QScopedPointer<Transform> t(Transform::make("Open+Draw(verbose,rects=false,location=false)",NULL));
900 900  
901   - QString filePath = "landmarking_examples_truth/"+truth[sampleIndex].file.fileName();
  901 + QString filePath = "landmarking_examples_truth/sample.jpg";
902 902 projectAndWrite(t.data(), truth[sampleIndex],filePath);
903 903 lines.append("Sample,"+filePath+","+QString::number(truth[sampleIndex].file.points().size()));
904 904 }
... ... @@ -906,7 +906,7 @@ float EvalLandmarking(const QString &amp;predictedGallery, const QString &amp;truthGalle
906 906 // Get best and worst performing examples
907 907 QList< QPair<float,int> > exampleIndices = Common::Sort(imageErrors,true);
908 908  
909   - QScopedPointer<Transform> t(Transform::make("Open+Draw(rects=false)",NULL));
  909 + QScopedPointer<Transform> t(Transform::make("Open+Draw(rects=false)+CropFromLandmarks+Resize(128,method=Area)",NULL));
910 910  
911 911 for (int i=0; i<totalExamples; i++) {
912 912 QString filePath = "landmarking_examples_truth/"+truth[exampleIndices[i].second].file.fileName();
... ...
openbr/plugins/imgproc/cropfromlandmarks.cpp
... ... @@ -25,20 +25,25 @@ class CropFromLandmarksTransform : public UntrainableTransform
25 25  
26 26 void project(const Template &src, Template &dst) const
27 27 {
  28 + QList<int> cropIndices = indices;
  29 + if (cropIndices.isEmpty() && !src.file.points().isEmpty())
  30 + for (int i=0; i<src.file.points().size(); i++)
  31 + cropIndices.append(i);
  32 +
28 33 int minX = src.m().cols - 1,
29 34 maxX = 1,
30 35 minY = src.m().rows - 1,
31 36 maxY = 1;
32 37  
33   - for (int i = 0; i <indices.size(); i++) {
34   - if (minX > src.file.points()[indices[i]].x())
35   - minX = src.file.points()[indices[i]].x();
36   - if (minY > src.file.points()[indices[i]].y())
37   - minY = src.file.points()[indices[i]].y();
38   - if (maxX < src.file.points()[indices[i]].x())
39   - maxX = src.file.points()[indices[i]].x();
40   - if (maxY < src.file.points()[indices[i]].y())
41   - maxY = src.file.points()[indices[i]].y();
  38 + for (int i = 0; i <cropIndices.size(); i++) {
  39 + if (minX > src.file.points()[cropIndices[i]].x())
  40 + minX = src.file.points()[cropIndices[i]].x();
  41 + if (minY > src.file.points()[cropIndices[i]].y())
  42 + minY = src.file.points()[cropIndices[i]].y();
  43 + if (maxX < src.file.points()[cropIndices[i]].x())
  44 + maxX = src.file.points()[cropIndices[i]].x();
  45 + if (maxY < src.file.points()[cropIndices[i]].y())
  46 + maxY = src.file.points()[cropIndices[i]].y();
42 47 }
43 48  
44 49 int padW = qRound((maxX - minX) * (paddingHorizontal / 2));
... ...