Commit d022425a57b4ff7c8bb3d8cb8c0af343276307b7
1 parent
f63a47d9
added ExtractMetadataTransform
Showing
1 changed file
with
23 additions
and
0 deletions
openbr/plugins/misc.cpp
| @@ -366,6 +366,29 @@ BR_REGISTER(Transform, RegexPropertyTransform) | @@ -366,6 +366,29 @@ BR_REGISTER(Transform, RegexPropertyTransform) | ||
| 366 | 366 | ||
| 367 | /*! | 367 | /*! |
| 368 | * \ingroup transforms | 368 | * \ingroup transforms |
| 369 | + * \brief Create matrix from metadata values. | ||
| 370 | + * \author Josh Klontz \cite jklontz | ||
| 371 | + */ | ||
| 372 | +class ExtractMetadataTransform : public UntrainableMetaTransform | ||
| 373 | +{ | ||
| 374 | + Q_OBJECT | ||
| 375 | + Q_PROPERTY(QStringList keys READ get_keys WRITE set_keys RESET reset_keys STORED false) | ||
| 376 | + BR_PROPERTY(QStringList, keys, QStringList()) | ||
| 377 | + | ||
| 378 | + void project(const Template &src, Template &dst) const | ||
| 379 | + { | ||
| 380 | + dst.file = src.file; | ||
| 381 | + QList<float> values; | ||
| 382 | + foreach (const QString &key, keys) | ||
| 383 | + values.append(src.file.get<float>(key)); | ||
| 384 | + dst.append(OpenCVUtils::toMat(values, 1)); | ||
| 385 | + } | ||
| 386 | +}; | ||
| 387 | + | ||
| 388 | +BR_REGISTER(Transform, ExtractMetadataTransform) | ||
| 389 | + | ||
| 390 | +/*! | ||
| 391 | + * \ingroup transforms | ||
| 369 | * \brief Store the last matrix of the input template as a metadata key with input property name. | 392 | * \brief Store the last matrix of the input template as a metadata key with input property name. |
| 370 | * \author Charles Otto \cite caotto | 393 | * \author Charles Otto \cite caotto |
| 371 | */ | 394 | */ |