Commit 419920f290a0be066c45b6c0a5e6a6392e049d76

Authored by Josh Klontz
1 parent c9aeecaa

IndependentTransform can now handle time varying transforms

Showing 1 changed file with 23 additions and 0 deletions
openbr/plugins/independent.cpp
... ... @@ -99,6 +99,8 @@ class IndependentTransform : public MetaTransform
99 99 return independentTransform;
100 100 }
101 101  
  102 + bool timeVarying() const { return transform->timeVarying(); }
  103 +
102 104 static void _train(Transform *transform, const TemplateList *data)
103 105 {
104 106 transform->train(*data);
... ... @@ -143,6 +145,27 @@ class IndependentTransform : public MetaTransform
143 145 dst.append(mats);
144 146 }
145 147  
  148 + void projectUpdate(const Template &src, Template &dst)
  149 + {
  150 + dst.file = src.file;
  151 + QList<Mat> mats;
  152 + for (int i=0; i<src.size(); i++) {
  153 + transforms[i%transforms.size()]->projectUpdate(Template(src.file, src[i]), dst);
  154 + mats.append(dst);
  155 + dst.clear();
  156 + }
  157 + dst.append(mats);
  158 + }
  159 +
  160 + void projectUpdate(const TemplateList &src, TemplateList &dst)
  161 + {
  162 + dst.reserve(src.size());
  163 + foreach (const Template &t, src) {
  164 + dst.append(Template());
  165 + projectUpdate(t, dst.last());
  166 + }
  167 + }
  168 +
146 169 void store(QDataStream &stream) const
147 170 {
148 171 const int size = transforms.size();
... ...