From 1e94e909ef1a1ce9d67e2c177d311fa3811fe624 Mon Sep 17 00:00:00 2001 From: Josh Klontz Date: Fri, 14 Nov 2014 13:59:26 -0500 Subject: [PATCH] updated Likely plugin --- openbr/plugins/likely.cpp | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/openbr/plugins/likely.cpp b/openbr/plugins/likely.cpp index 2ecf0fc..aad2933 100644 --- a/openbr/plugins/likely.cpp +++ b/openbr/plugins/likely.cpp @@ -19,24 +19,38 @@ class LikelyTransform : public UntrainableTransform Q_PROPERTY(QString kernel READ get_kernel WRITE set_kernel RESET reset_kernel STORED false) BR_PROPERTY(QString, kernel, "") - likely_function function; + likely_const_env env; + void *function; + + ~LikelyTransform() + { + likely_release_env(env); + } void init() { - likely_ast ast = likely_ast_from_string(qPrintable(kernel)); - likely_env env = likely_new_env(); - function = likely_compile(ast, env, likely_type_null); likely_release_env(env); + const likely_ast ast = likely_lex_and_parse(qPrintable(kernel), likely_file_lisp); + const likely_const_env parent = likely_standard(NULL); + env = likely_eval(ast, parent, NULL, NULL); + likely_release_env(parent); likely_release_ast(ast); + function = likely_compile(env->expr, NULL, 0); } void project(const Template &src, Template &dst) const { - likely_const_mat srcl = likely::fromCvMat(src); - likely_const_mat dstl = function(srcl); - dst = likely::toCvMat(dstl); - likely_release(dstl); - likely_release(srcl); + const likely_const_mat srcl = likelyFromOpenCVMat(src); + const likely_const_mat dstl = reinterpret_cast(function)(srcl); + dst = likelyToOpenCVMat(dstl); + likely_release_mat(dstl); + likely_release_mat(srcl); + } + +public: + LikelyTransform() + { + env = NULL; } }; @@ -49,27 +63,27 @@ BR_REGISTER(Transform, LikelyTransform) * www.liblikely.org * \author Josh Klontz \cite jklontz */ -class lmFormat : public Format +class lmatFormat : public Format { Q_OBJECT Template read() const { - likely_const_mat m = likely_read(qPrintable(file.name)); - Template result(likely::toCvMat(m)); - likely_release(m); + const likely_const_mat m = likely_read(qPrintable(file.name), likely_file_guess); + const Template result(likelyToOpenCVMat(m)); + likely_release_mat(m); return result; } void write(const Template &t) const { - likely_const_mat m = likely::fromCvMat(t); + const likely_const_mat m = likelyFromOpenCVMat(t); likely_write(m, qPrintable(file.name)); - likely_release(m); + likely_release_mat(m); } }; -BR_REGISTER(Format, lmFormat) +BR_REGISTER(Format, lmatFormat) } // namespace br -- libgit2 0.21.4