diff --git a/openbr/plugins/landmarks.cpp b/openbr/plugins/landmarks.cpp index 1cb4445..c3b924b 100644 --- a/openbr/plugins/landmarks.cpp +++ b/openbr/plugins/landmarks.cpp @@ -290,16 +290,18 @@ class DrawDelaunayTransform : public UntrainableTransform void project(const Template &src, Template &dst) const { - QList validTriangles = OpenCVUtils::toPoints(src.file.getList("DelaunayTriangles")); + dst = src; - // Clone the matrix do draw on it - dst.m() = src.m().clone(); + if (src.file.contains("DelaunayTriangles")) { + QList validTriangles = OpenCVUtils::toPoints(src.file.getList("DelaunayTriangles")); - for (int i = 0; i < validTriangles.size(); i+=3) { - line(dst.m(), validTriangles[i], validTriangles[i+1], Scalar(0,0,0), 1); - line(dst.m(), validTriangles[i+1], validTriangles[i+2], Scalar(0,0,0), 1); - line(dst.m(), validTriangles[i+2], validTriangles[i], Scalar(0,0,0), 1); - } + // Clone the matrix do draw on it + for (int i = 0; i < validTriangles.size(); i+=3) { + line(dst, validTriangles[i], validTriangles[i+1], Scalar(0,0,0), 1); + line(dst, validTriangles[i+1], validTriangles[i+2], Scalar(0,0,0), 1); + line(dst, validTriangles[i+2], validTriangles[i], Scalar(0,0,0), 1); + } + } else qWarning("Template does not contain Delaunay triangulation."); } };