From eb20e848dc7709ccacd1b6f35d64c471b66c2d6d Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Wed, 27 Aug 2014 16:16:55 -0400 Subject: [PATCH] Generalized name/anonymize transforms --- openbr/plugins/landmarks.cpp | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/openbr/plugins/landmarks.cpp b/openbr/plugins/landmarks.cpp index a64dba8..6f9f911 100644 --- a/openbr/plugins/landmarks.cpp +++ b/openbr/plugins/landmarks.cpp @@ -369,12 +369,14 @@ BR_REGISTER(Transform, ReadLandmarksTransform) /*! * \ingroup transforms - * \brief Name a point + * \brief Name a point/rect * \author Scott Klum \cite sklum */ -class NamePointsTransform : public UntrainableMetadataTransform +class NameLandmarkTransform : public UntrainableMetadataTransform { Q_OBJECT + Q_PROPERTY(bool point READ get_point WRITE set_point RESET reset_point STORED false) + BR_PROPERTY(bool, point, true) Q_PROPERTY(QList indices READ get_indices WRITE set_indices RESET reset_indices STORED false) Q_PROPERTY(QStringList names READ get_names WRITE set_names RESET reset_names STORED false) BR_PROPERTY(QList, indices, QList()) @@ -382,29 +384,40 @@ class NamePointsTransform : public UntrainableMetadataTransform void projectMetadata(const File &src, File &dst) const { - if (indices.size() != names.size()) qFatal("Point/name size mismatch"); + if (indices.size() != names.size()) qFatal("Index/name size mismatch"); dst = src; - QList points = src.points(); + if (point) { + QList points = src.points(); - for (int i=0; i rects = src.rects(); + + for (int i=0; i(name)); + if (point) { + foreach (const QString &name, names) + if (src.contains(name)) dst.appendPoint(src.get(name)); + } else { + foreach (const QString &name, names) + if (src.contains(name)) dst.appendRect(src.get(name)); + } } }; -BR_REGISTER(Transform, AnonymizePointsTransform) +BR_REGISTER(Transform, AnonymizeLandmarkTransform) } // namespace br -- libgit2 0.21.4