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