From d2d6134faa2dc89497a341ffee79ab9e240831a0 Mon Sep 17 00:00:00 2001 From: Charles Otto Date: Sun, 12 May 2013 14:30:34 -0400 Subject: [PATCH] Add a transform to draw a properties value at some point --- openbr/plugins/draw.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+), 0 deletions(-) diff --git a/openbr/plugins/draw.cpp b/openbr/plugins/draw.cpp index 6a6a933..6d20b17 100644 --- a/openbr/plugins/draw.cpp +++ b/openbr/plugins/draw.cpp @@ -61,6 +61,45 @@ class DrawTransform : public UntrainableTransform BR_REGISTER(Transform, DrawTransform) + +class DrawPropertyPointTransform : public UntrainableTransform +{ + Q_OBJECT + Q_PROPERTY(QString propName READ get_propName WRITE set_propName RESET reset_propName STORED false) + Q_PROPERTY(QString pointName READ get_pointName WRITE set_pointName RESET reset_pointName STORED false) + BR_PROPERTY(QString, propName, "") + BR_PROPERTY(QString, pointName, "") + + + void project(const Template &src, Template &dst) const + { + dst = src; + if (propName.isEmpty() || pointName.isEmpty()) + return; + + const Scalar textColor(255, 255, 0); + + QVariant prop = dst.file.value(propName); + + + if (!prop.canConvert(QVariant::String)) + return; + QString propString = prop.toString(); + + QVariant point = dst.file.value(pointName); + + if (!point.canConvert(QVariant::PointF)) + return; + + QPointF targetPoint = point.toPointF(); + + Point2f cvPoint =OpenCVUtils::toPoint(targetPoint); + putText(dst, propString.toStdString(), cvPoint, FONT_HERSHEY_SIMPLEX, 0.5, textColor, 1); + } + +}; +BR_REGISTER(Transform, DrawPropertyPointTransform) + /*! * \ingroup transforms * \brief Draws a grid on the image -- libgit2 0.21.4