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,24 +19,38 @@ class LikelyTransform : public UntrainableTransform | ||
| 19 | Q_PROPERTY(QString kernel READ get_kernel WRITE set_kernel RESET reset_kernel STORED false) | 19 | Q_PROPERTY(QString kernel READ get_kernel WRITE set_kernel RESET reset_kernel STORED false) |
| 20 | BR_PROPERTY(QString, kernel, "") | 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 | void init() | 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 | likely_release_env(env); | 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 | likely_release_ast(ast); | 37 | likely_release_ast(ast); |
| 38 | + function = likely_compile(env->expr, NULL, 0); | ||
| 31 | } | 39 | } |
| 32 | 40 | ||
| 33 | void project(const Template &src, Template &dst) const | 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,27 +63,27 @@ BR_REGISTER(Transform, LikelyTransform) | ||
| 49 | * www.liblikely.org | 63 | * www.liblikely.org |
| 50 | * \author Josh Klontz \cite jklontz | 64 | * \author Josh Klontz \cite jklontz |
| 51 | */ | 65 | */ |
| 52 | -class lmFormat : public Format | 66 | +class lmatFormat : public Format |
| 53 | { | 67 | { |
| 54 | Q_OBJECT | 68 | Q_OBJECT |
| 55 | 69 | ||
| 56 | Template read() const | 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 | return result; | 75 | return result; |
| 62 | } | 76 | } |
| 63 | 77 | ||
| 64 | void write(const Template &t) const | 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 | likely_write(m, qPrintable(file.name)); | 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 | } // namespace br | 88 | } // namespace br |
| 75 | 89 |