Commit a6fc60eb4e962e388ca737d61075ac74afef0ea0

Authored by Scott Klum
1 parent 4569eb79

Fixed bug where if PP5 failed stasm would fail

openbr/plugins/register.cpp
... ... @@ -72,6 +72,10 @@ class AffineTransform : public UntrainableTransform
72 72 (src.file.contains("Affine_2") || twoPoints)) {
73 73 srcPoints[0] = OpenCVUtils::toPoint(src.file.get<QPointF>("Affine_0"));
74 74 srcPoints[1] = OpenCVUtils::toPoint(src.file.get<QPointF>("Affine_1"));
  75 +
  76 + dst.file.set("Affine_0", OpenCVUtils::fromPoint(dstPoints[0]));
  77 + dst.file.set("Affine_1", OpenCVUtils::fromPoint(dstPoints[1]));
  78 +
75 79 if (!twoPoints) srcPoints[2] = OpenCVUtils::toPoint(src.file.get<QPointF>("Affine_2"));
76 80 } else {
77 81 const QList<Point2f> landmarks = OpenCVUtils::toPoints(src.file.points());
... ... @@ -93,9 +97,6 @@ class AffineTransform : public UntrainableTransform
93 97 if (twoPoints) srcPoints[2] = getThirdAffinePoint(srcPoints[0], srcPoints[1]);
94 98  
95 99 warpAffine(src, dst, getAffineTransform(srcPoints, dstPoints), Size(width, height));
96   -
97   - dst.file.set("Affine_0", OpenCVUtils::fromPoint(dstPoints[0]));
98   - dst.file.set("Affine_1", OpenCVUtils::fromPoint(dstPoints[1]));
99 100 }
100 101 };
101 102  
... ...
openbr/plugins/stasm.cpp
... ... @@ -57,10 +57,15 @@ class StasmTransform : public UntrainableTransform
57 57 int landmarks[500];
58 58  
59 59 DET_PARAMS parameters;
60   - parameters.lex = src.file.get<QPoint>("Affine_0").x() - src.m().cols/2;
61   - parameters.ley = src.m().rows/2 - src.file.get<QPoint>("Affine_0").y();
62   - parameters.rex = src.file.get<QPoint>("Affine_1").x() - src.m().cols/2;
63   - parameters.rey = src.m().rows/2 - src.file.get<QPoint>("Affine_1").y();
  60 +
  61 + if (src.file.contains("Affine_0") && src.file.contains("Affine_1")) {
  62 + parameters.lex = src.file.get<QPoint>("Affine_0").x() - src.m().cols/2;
  63 + parameters.ley = src.m().rows/2 - src.file.get<QPoint>("Affine_0").y();
  64 + parameters.rex = src.file.get<QPoint>("Affine_1").x() - src.m().cols/2;
  65 + parameters.rey = src.m().rows/2 - src.file.get<QPoint>("Affine_1").y();
  66 + } else {
  67 + parameters.lex = parameters.ley = parameters.rex = parameters.rey = INVALID;
  68 + }
64 69  
65 70 AsmSearchDll(numLandmarks, landmarks, qPrintable(src.file.name),
66 71 reinterpret_cast<char*>(src.m().data), src.m(), models,
... ...