diff --git a/openbr/plugins/misc.cpp b/openbr/plugins/misc.cpp index 37f8896..d8d7c14 100644 --- a/openbr/plugins/misc.cpp +++ b/openbr/plugins/misc.cpp @@ -366,6 +366,29 @@ BR_REGISTER(Transform, RegexPropertyTransform) /*! * \ingroup transforms + * \brief Create matrix from metadata values. + * \author Josh Klontz \cite jklontz + */ +class ExtractMetadataTransform : public UntrainableMetaTransform +{ + Q_OBJECT + Q_PROPERTY(QStringList keys READ get_keys WRITE set_keys RESET reset_keys STORED false) + BR_PROPERTY(QStringList, keys, QStringList()) + + void project(const Template &src, Template &dst) const + { + dst.file = src.file; + QList values; + foreach (const QString &key, keys) + values.append(src.file.get(key)); + dst.append(OpenCVUtils::toMat(values, 1)); + } +}; + +BR_REGISTER(Transform, ExtractMetadataTransform) + +/*! + * \ingroup transforms * \brief Store the last matrix of the input template as a metadata key with input property name. * \author Charles Otto \cite caotto */