Commit 1e94e909ef1a1ce9d67e2c177d311fa3811fe624
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 | ... | ... |