From 1d5bad331c30b465f3218234eb97a72bc155e586 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Thu, 13 Feb 2014 16:32:40 -0500 Subject: [PATCH] DrawDelaunay should not throw a fatal if no triangles exist --- openbr/plugins/landmarks.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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."); } }; -- libgit2 0.21.4