Commit 31704f504a2f572d7a122f35c6785ad682b5bf13

Authored by Austin Van Blanton
1 parent 41119302

Add CatColsTransform

Showing 1 changed file with 26 additions and 1 deletions
openbr/plugins/regions.cpp
@@ -114,7 +114,7 @@ BR_REGISTER(Transform, CatTransform) @@ -114,7 +114,7 @@ BR_REGISTER(Transform, CatTransform)
114 /*! 114 /*!
115 * \ingroup transforms 115 * \ingroup transforms
116 * \brief Concatenates all input matrices by row into a single matrix. 116 * \brief Concatenates all input matrices by row into a single matrix.
117 - * All matricies must have the same row counts. 117 + * All matricies must have the same column counts.
118 * \author Josh Klontz \cite jklontz 118 * \author Josh Klontz \cite jklontz
119 */ 119 */
120 class CatRowsTransform : public UntrainableMetaTransform 120 class CatRowsTransform : public UntrainableMetaTransform
@@ -131,6 +131,31 @@ BR_REGISTER(Transform, CatRowsTransform) @@ -131,6 +131,31 @@ BR_REGISTER(Transform, CatRowsTransform)
131 131
132 /*! 132 /*!
133 * \ingroup transforms 133 * \ingroup transforms
  134 + * \brief Concatenates all input matrices by column into a single matrix.
  135 + * Use after a fork to concatenate two feature matrices by column.
  136 + * \author Austin Blanton \cite imaus10
  137 + */
  138 +class CatColsTransform : public UntrainableMetaTransform
  139 +{
  140 + Q_OBJECT
  141 +
  142 + void project(const Template &src, Template &dst) const
  143 + {
  144 + if (src.empty()) return;
  145 + dst.file = src.file;
  146 + Mat m = OpenCVUtils::toMatByRow(src);
  147 + // right now this just splits src in half and joins them horizontally
  148 + // TODO: add partitions parameter for more than a single split
  149 + Mat first = m.rowRange(Range(0, m.rows/2));
  150 + Mat second = m.rowRange(Range(m.rows/2, m.rows));
  151 + hconcat(first, second, dst);
  152 + }
  153 +};
  154 +
  155 +BR_REGISTER(Transform, CatColsTransform)
  156 +
  157 +/*!
  158 + * \ingroup transforms
134 * \brief Reshape the each matrix to the specified number of rows. 159 * \brief Reshape the each matrix to the specified number of rows.
135 * \author Josh Klontz \cite jklontz 160 * \author Josh Klontz \cite jklontz
136 */ 161 */