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 | 290 | |
| 291 | 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 | ... | ... |