Commit 922ab9862c0f721d6d3a0d964a7403ef12f70c78

Authored by Josh Klontz
1 parent f2e9bf0e

expose training data to likely

Showing 1 changed file with 22 additions and 2 deletions
openbr/plugins/core/likely.cpp
... ... @@ -40,8 +40,10 @@ class LikelyTransform : public Transform
40 40 qFatal("Failed to compile: %s", qPrintable(sourceFile));
41 41 }
42 42  
43   - void train(const TemplateList &)
  43 + void train(const TemplateList &trainingData)
44 44 {
  45 + const likely_const_mat data = likelyFromOpenCVMats(trainingData.data().toVector().toStdVector());
  46 +
45 47 QByteArray sourceCode;
46 48 QtUtils::readFile(sourceFile, sourceCode);
47 49  
... ... @@ -50,7 +52,24 @@ class LikelyTransform : public Transform
50 52 settings.runtime_only = true;
51 53  
52 54 likely_mat output;
53   - const likely_const_env parent = likely_standard(settings, &output, likely_file_bitcode);
  55 + likely_const_env parent = likely_standard(settings, &output, likely_file_bitcode);
  56 +
  57 + { // Construct an environment where `data` is accessible
  58 + QString source;
  59 + QTextStream textStream(&source);
  60 + textStream << "(= data (";
  61 + {
  62 + const likely_const_mat dataType = likely_type_to_string(data->type);
  63 + textStream << dataType->data;
  64 + likely_release_mat(dataType);
  65 + }
  66 + textStream << " " << uintptr_t(data) << "))";
  67 +
  68 + const likely_const_env env = likely_lex_parse_and_eval(qPrintable(source), likely_file_lisp, parent);
  69 + likely_release_env(parent);
  70 + parent = env;
  71 + }
  72 +
54 73 likely_release_env(likely_lex_parse_and_eval(sourceCode.data(), likely_guess_file_type(qPrintable(sourceFile)), parent));
55 74 likely_release_env(parent);
56 75  
... ... @@ -58,6 +77,7 @@ class LikelyTransform : public Transform
58 77 likely_release_mat(output);
59 78  
60 79 compile();
  80 + likely_release_mat(data);
61 81 }
62 82  
63 83 void project(const Template &src, Template &dst) const
... ...