Commit 1e94e909ef1a1ce9d67e2c177d311fa3811fe624

Authored by Josh Klontz
1 parent 3bec8ea6

updated Likely plugin

Showing 1 changed file with 30 additions and 16 deletions
openbr/plugins/likely.cpp
... ... @@ -19,24 +19,38 @@ class LikelyTransform : public UntrainableTransform
19 19 Q_PROPERTY(QString kernel READ get_kernel WRITE set_kernel RESET reset_kernel STORED false)
20 20 BR_PROPERTY(QString, kernel, "")
21 21  
22   - likely_function function;
  22 + likely_const_env env;
  23 + void *function;
  24 +
  25 + ~LikelyTransform()
  26 + {
  27 + likely_release_env(env);
  28 + }
23 29  
24 30 void init()
25 31 {
26   - likely_ast ast = likely_ast_from_string(qPrintable(kernel));
27   - likely_env env = likely_new_env();
28   - function = likely_compile(ast, env, likely_type_null);
29 32 likely_release_env(env);
  33 + const likely_ast ast = likely_lex_and_parse(qPrintable(kernel), likely_file_lisp);
  34 + const likely_const_env parent = likely_standard(NULL);
  35 + env = likely_eval(ast, parent, NULL, NULL);
  36 + likely_release_env(parent);
30 37 likely_release_ast(ast);
  38 + function = likely_compile(env->expr, NULL, 0);
31 39 }
32 40  
33 41 void project(const Template &src, Template &dst) const
34 42 {
35   - likely_const_mat srcl = likely::fromCvMat(src);
36   - likely_const_mat dstl = function(srcl);
37   - dst = likely::toCvMat(dstl);
38   - likely_release(dstl);
39   - likely_release(srcl);
  43 + const likely_const_mat srcl = likelyFromOpenCVMat(src);
  44 + const likely_const_mat dstl = reinterpret_cast<likely_mat (*)(likely_const_mat)>(function)(srcl);
  45 + dst = likelyToOpenCVMat(dstl);
  46 + likely_release_mat(dstl);
  47 + likely_release_mat(srcl);
  48 + }
  49 +
  50 +public:
  51 + LikelyTransform()
  52 + {
  53 + env = NULL;
40 54 }
41 55 };
42 56  
... ... @@ -49,27 +63,27 @@ BR_REGISTER(Transform, LikelyTransform)
49 63 * www.liblikely.org
50 64 * \author Josh Klontz \cite jklontz
51 65 */
52   -class lmFormat : public Format
  66 +class lmatFormat : public Format
53 67 {
54 68 Q_OBJECT
55 69  
56 70 Template read() const
57 71 {
58   - likely_const_mat m = likely_read(qPrintable(file.name));
59   - Template result(likely::toCvMat(m));
60   - likely_release(m);
  72 + const likely_const_mat m = likely_read(qPrintable(file.name), likely_file_guess);
  73 + const Template result(likelyToOpenCVMat(m));
  74 + likely_release_mat(m);
61 75 return result;
62 76 }
63 77  
64 78 void write(const Template &t) const
65 79 {
66   - likely_const_mat m = likely::fromCvMat(t);
  80 + const likely_const_mat m = likelyFromOpenCVMat(t);
67 81 likely_write(m, qPrintable(file.name));
68   - likely_release(m);
  82 + likely_release_mat(m);
69 83 }
70 84 };
71 85  
72   -BR_REGISTER(Format, lmFormat)
  86 +BR_REGISTER(Format, lmatFormat)
73 87  
74 88 } // namespace br
75 89  
... ...