Commit 1d5bad331c30b465f3218234eb97a72bc155e586

Authored by Scott Klum
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