Commit 217b09f7db9b925cd5586f703707b5ec0d5fac28
1 parent
20cdcd94
added backProject to Context and Transform
Showing
2 changed files
with
22 additions
and
1 deletions
sdk/openbr_plugin.cpp
| @@ -606,6 +606,7 @@ br::Context::Context() | @@ -606,6 +606,7 @@ br::Context::Context() | ||
| 606 | quiet = verbose = false; | 606 | quiet = verbose = false; |
| 607 | currentStep = totalSteps = 0; | 607 | currentStep = totalSteps = 0; |
| 608 | enrollAll = false; | 608 | enrollAll = false; |
| 609 | + backProject = false; | ||
| 609 | } | 610 | } |
| 610 | 611 | ||
| 611 | int br::Context::blocks(int size) const | 612 | int br::Context::blocks(int size) const |
| @@ -1046,6 +1047,8 @@ private: | @@ -1046,6 +1047,8 @@ private: | ||
| 1046 | } | 1047 | } |
| 1047 | } | 1048 | } |
| 1048 | 1049 | ||
| 1050 | + | ||
| 1051 | + | ||
| 1049 | void store(QDataStream &stream) const | 1052 | void store(QDataStream &stream) const |
| 1050 | { | 1053 | { |
| 1051 | const int size = transforms.size(); | 1054 | const int size = transforms.size(); |
| @@ -1154,6 +1157,12 @@ void Transform::project(const TemplateList &src, TemplateList &dst) const | @@ -1154,6 +1157,12 @@ void Transform::project(const TemplateList &src, TemplateList &dst) const | ||
| 1154 | if (Globals->parallelism) Globals->trackFutures(futures); | 1157 | if (Globals->parallelism) Globals->trackFutures(futures); |
| 1155 | } | 1158 | } |
| 1156 | 1159 | ||
| 1160 | +void Transform::backProject(const Template &dst, Template &src) const | ||
| 1161 | +{ | ||
| 1162 | + src = dst; | ||
| 1163 | +} | ||
| 1164 | + | ||
| 1165 | + | ||
| 1157 | /* Distance - public methods */ | 1166 | /* Distance - public methods */ |
| 1158 | void Distance::train(const TemplateList &templates) | 1167 | void Distance::train(const TemplateList &templates) |
| 1159 | { | 1168 | { |
sdk/openbr_plugin.h
| @@ -449,6 +449,13 @@ public: | @@ -449,6 +449,13 @@ public: | ||
| 449 | BR_PROPERTY(int, parallelism, 0) | 449 | BR_PROPERTY(int, parallelism, 0) |
| 450 | 450 | ||
| 451 | /*! | 451 | /*! |
| 452 | + * \brief true if backProject should be used instead of project (the algorithm should be inverted) | ||
| 453 | + */ | ||
| 454 | + Q_PROPERTY(bool backProject READ get_backProject WRITE set_backProject RESET reset_backProject) | ||
| 455 | + BR_PROPERTY(bool, backProject, false) | ||
| 456 | + | ||
| 457 | + | ||
| 458 | + /*! | ||
| 452 | * \brief If \c true no messages will be sent to the terminal, \c false by default. | 459 | * \brief If \c true no messages will be sent to the terminal, \c false by default. |
| 453 | */ | 460 | */ |
| 454 | Q_PROPERTY(bool quiet READ get_quiet WRITE set_quiet RESET reset_quiet) | 461 | Q_PROPERTY(bool quiet READ get_quiet WRITE set_quiet RESET reset_quiet) |
| @@ -905,6 +912,9 @@ public: | @@ -905,6 +912,9 @@ public: | ||
| 905 | virtual void train(const TemplateList &data) = 0; /*!< \brief Train the transform. */ | 912 | virtual void train(const TemplateList &data) = 0; /*!< \brief Train the transform. */ |
| 906 | virtual void project(const Template &src, Template &dst) const = 0; /*!< \brief Apply the transform. */ | 913 | virtual void project(const Template &src, Template &dst) const = 0; /*!< \brief Apply the transform. */ |
| 907 | virtual void project(const TemplateList &src, TemplateList &dst) const; /*!< \brief Apply the transform. */ | 914 | virtual void project(const TemplateList &src, TemplateList &dst) const; /*!< \brief Apply the transform. */ |
| 915 | + virtual void backProject(const Template &dst, Template &src) const; /*!< \brief Invert the transform. */ | ||
| 916 | + | ||
| 917 | + | ||
| 908 | 918 | ||
| 909 | /*! | 919 | /*! |
| 910 | * \brief Convenience function equivalent to project(). | 920 | * \brief Convenience function equivalent to project(). |
| @@ -930,6 +940,7 @@ public: | @@ -930,6 +940,7 @@ public: | ||
| 930 | protected: | 940 | protected: |
| 931 | Transform(bool independent = true); /*!< \brief Construct a transform. */ | 941 | Transform(bool independent = true); /*!< \brief Construct a transform. */ |
| 932 | inline Transform *make(const QString &description) { return make(description, this); } /*!< \brief Make a subtransform. */ | 942 | inline Transform *make(const QString &description) { return make(description, this); } /*!< \brief Make a subtransform. */ |
| 943 | + | ||
| 933 | }; | 944 | }; |
| 934 | 945 | ||
| 935 | /*! | 946 | /*! |
| @@ -996,6 +1007,7 @@ private: | @@ -996,6 +1007,7 @@ private: | ||
| 996 | void load(QDataStream &stream) { (void) stream; } | 1007 | void load(QDataStream &stream) { (void) stream; } |
| 997 | }; | 1008 | }; |
| 998 | 1009 | ||
| 1010 | + | ||
| 999 | /*! | 1011 | /*! |
| 1000 | * \brief A br::MetaTransform that does not require training data. | 1012 | * \brief A br::MetaTransform that does not require training data. |
| 1001 | */ | 1013 | */ |
| @@ -1043,7 +1055,7 @@ private: | @@ -1043,7 +1055,7 @@ private: | ||
| 1043 | * \brief Returns \c true if the algorithm is a classifier, \c false otherwise. | 1055 | * \brief Returns \c true if the algorithm is a classifier, \c false otherwise. |
| 1044 | * | 1056 | * |
| 1045 | * Classifers have no br::Distance associated with their br::Transform. | 1057 | * Classifers have no br::Distance associated with their br::Transform. |
| 1046 | -* Instead they populate br::Template::file \c Label metadata fielf with the predicted class. | 1058 | +* Instead they populate br::Template::file \c Label metadata field with the predicted class. |
| 1047 | */ | 1059 | */ |
| 1048 | BR_EXPORT bool IsClassifier(const QString &algorithm); | 1060 | BR_EXPORT bool IsClassifier(const QString &algorithm); |
| 1049 | 1061 |