From 0e1d890a0ee8a66d7ec7d7499e4cf68f1ee05a1c Mon Sep 17 00:00:00 2001 From: Brendan K Date: Tue, 3 Nov 2015 10:32:17 -0500 Subject: [PATCH] Transform to randomly sample a gallery --- openbr/plugins/metadata/randomtemplates.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+), 0 deletions(-) create mode 100644 openbr/plugins/metadata/randomtemplates.cpp diff --git a/openbr/plugins/metadata/randomtemplates.cpp b/openbr/plugins/metadata/randomtemplates.cpp new file mode 100644 index 0000000..466a3a4 --- /dev/null +++ b/openbr/plugins/metadata/randomtemplates.cpp @@ -0,0 +1,34 @@ +#include + +namespace br +{ + +/*! + * \ingroup transforms + * \author Brendan Klare \cite bklare + * \brief Randomly sample templates from a gallery + */ +class RandomTemplatesTransform : public UntrainableMetaTransform +{ + Q_OBJECT + Q_PROPERTY(float percent READ get_percent WRITE set_percent RESET reset_percent) + BR_PROPERTY(float, percent, .01) + + void project(const Template &src, Template &dst) const { + qFatal("Not supported in RandomTemplates."); + } + + void project(const TemplateList &src, TemplateList &dst) const { + for (int i = 0; i < src.size(); i++) { + const float r = static_cast (rand()) / static_cast (RAND_MAX); + if (r <= percent) + dst.append(src[i]); + } + } +}; +BR_REGISTER(Transform, RandomTemplatesTransform) + +} // namespace br + +#include "imgproc/randomtemplates.moc" + -- libgit2 0.21.4