Commit 1d5bad331c30b465f3218234eb97a72bc155e586
1 parent
58228488
DrawDelaunay should not throw a fatal if no triangles exist
Showing
1 changed file
with
10 additions
and
8 deletions
openbr/plugins/landmarks.cpp
| @@ -290,16 +290,18 @@ class DrawDelaunayTransform : public UntrainableTransform | @@ -290,16 +290,18 @@ class DrawDelaunayTransform : public UntrainableTransform | ||
| 290 | 290 | ||
| 291 | void project(const Template &src, Template &dst) const | 291 | void project(const Template &src, Template &dst) const |
| 292 | { | 292 | { |
| 293 | - QList<Point2f> validTriangles = OpenCVUtils::toPoints(src.file.getList<QPointF>("DelaunayTriangles")); | 293 | + dst = src; |
| 294 | 294 | ||
| 295 | - // Clone the matrix do draw on it | ||
| 296 | - dst.m() = src.m().clone(); | 295 | + if (src.file.contains("DelaunayTriangles")) { |
| 296 | + QList<Point2f> validTriangles = OpenCVUtils::toPoints(src.file.getList<QPointF>("DelaunayTriangles")); | ||
| 297 | 297 | ||
| 298 | - for (int i = 0; i < validTriangles.size(); i+=3) { | ||
| 299 | - line(dst.m(), validTriangles[i], validTriangles[i+1], Scalar(0,0,0), 1); | ||
| 300 | - line(dst.m(), validTriangles[i+1], validTriangles[i+2], Scalar(0,0,0), 1); | ||
| 301 | - line(dst.m(), validTriangles[i+2], validTriangles[i], Scalar(0,0,0), 1); | ||
| 302 | - } | 298 | + // Clone the matrix do draw on it |
| 299 | + for (int i = 0; i < validTriangles.size(); i+=3) { | ||
| 300 | + line(dst, validTriangles[i], validTriangles[i+1], Scalar(0,0,0), 1); | ||
| 301 | + line(dst, validTriangles[i+1], validTriangles[i+2], Scalar(0,0,0), 1); | ||
| 302 | + line(dst, validTriangles[i+2], validTriangles[i], Scalar(0,0,0), 1); | ||
| 303 | + } | ||
| 304 | + } else qWarning("Template does not contain Delaunay triangulation."); | ||
| 303 | } | 305 | } |
| 304 | }; | 306 | }; |
| 305 | 307 |