Commit a7712abbb2aee9a81aa26688e23b7509da31c5d0

Authored by Josh Klontz
1 parent ee43de35

fixed bugs introduced in 54a98a9713eb1ace3b7c1d649746470449e307cb

Showing 1 changed file with 10 additions and 14 deletions
openbr/plugins/eigen3.cpp
... ... @@ -302,8 +302,8 @@ class LDATransform : public Transform
302 302 Q_PROPERTY(int directLDA READ get_directLDA WRITE set_directLDA RESET reset_directLDA STORED false)
303 303 Q_PROPERTY(float directDrop READ get_directDrop WRITE set_directDrop RESET reset_directDrop STORED false)
304 304 Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false)
305   - Q_PROPERTY(bool isBinary READ get_isBinary WRITE set_isBinary RESET reset_isBinary STORED true)
306   - Q_PROPERTY(bool normalize READ get_normalize WRITE set_normalize RESET reset_normalize STORED true)
  305 + Q_PROPERTY(bool isBinary READ get_isBinary WRITE set_isBinary RESET reset_isBinary STORED false)
  306 + Q_PROPERTY(bool normalize READ get_normalize WRITE set_normalize RESET reset_normalize STORED false)
307 307 BR_PROPERTY(float, pcaKeep, 0.98)
308 308 BR_PROPERTY(bool, pcaWhiten, false)
309 309 BR_PROPERTY(int, directLDA, 0)
... ... @@ -316,12 +316,6 @@ class LDATransform : public Transform
316 316 Eigen::VectorXf mean;
317 317 Eigen::MatrixXf projection;
318 318 float stdDev;
319   - bool trained;
320   -
321   - void init()
322   - {
323   - trained = false;
324   - }
325 319  
326 320 void train(const TemplateList &_trainingSet)
327 321 {
... ... @@ -461,9 +455,9 @@ class LDATransform : public Transform
461 455 projection = ((space2.eVecs.transpose() * space1.eVecs.transpose()) * pca.eVecs.transpose()).transpose();
462 456 dimsOut = dim2;
463 457  
  458 + stdDev = 1; // default initialize
464 459 if (isBinary) {
465 460 assert(dimsOut == 1);
466   - TemplateList projected;
467 461 float posVal = 0;
468 462 float negVal = 0;
469 463 Eigen::MatrixXf results(trainingSet.size(),1);
... ... @@ -493,8 +487,6 @@ class LDATransform : public Transform
493 487 if (normalize)
494 488 stdDev = sqrt(results.array().square().sum() / trainingSet.size());
495 489 }
496   -
497   - trained = true;
498 490 }
499 491  
500 492 void project(const Template &src, Template &dst) const
... ... @@ -508,18 +500,22 @@ class LDATransform : public Transform
508 500 // Do projection
509 501 outMap = projection.transpose() * (inMap - mean);
510 502  
511   - if (normalize && isBinary && trained)
  503 + if (normalize && isBinary)
512 504 dst.m().at<float>(0,0) = dst.m().at<float>(0,0) / stdDev;
513 505 }
514 506  
515 507 void store(QDataStream &stream) const
516 508 {
517   - stream << pcaKeep << directLDA << directDrop << dimsOut << mean << projection << stdDev << normalize << isBinary << trained;
  509 + stream << pcaKeep << directLDA << directDrop << dimsOut << mean << projection;
  510 + if (normalize && isBinary)
  511 + stream << stdDev;
518 512 }
519 513  
520 514 void load(QDataStream &stream)
521 515 {
522   - stream >> pcaKeep >> directLDA >> directDrop >> dimsOut >> mean >> projection >> stdDev >> normalize >> isBinary >> trained;
  516 + stream >> pcaKeep >> directLDA >> directDrop >> dimsOut >> mean >> projection;
  517 + if (normalize && isBinary)
  518 + stream >> stdDev;
523 519 }
524 520 };
525 521  
... ...