From a8aafc5e5c61acd0143e5ebca3b129bc2683fdaa Mon Sep 17 00:00:00 2001 From: midoks Date: Fri, 13 Oct 2017 16:37:54 +0800 Subject: [PATCH] update --- lib/imgproc.cpp | 46 ++++++++++++++++++++-------------------------- opencv.cpp | 3 ++- php_opencv.h | 1 + 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/lib/imgproc.cpp b/lib/imgproc.cpp index 197d4be..4b0d661 100644 --- a/lib/imgproc.cpp +++ b/lib/imgproc.cpp @@ -50,20 +50,18 @@ using namespace cv; using namespace std; - - /** {{{ proto php_opencv_imgproc */ -typedef struct _php_opencv_imgproc -{ - char *src_path; - long width; - long height; -} php_opencv_imgproc_t; +// typedef struct _php_opencv_imgproc +// { +// char *src_path; +// long width; +// long height; +// } php_opencv_imgproc_t; +// php_opencv_imgproc_t * opencv_imgproc_var; /* }}} */ -php_opencv_imgproc_t * opencv_imgproc_var; Mat opencv_imgproc_src_im; Mat opencv_imgproc_dst_im; static CascadeClassifier face_cascade; @@ -243,9 +241,9 @@ PHP_METHOD(opencv_imgproc, __construct) { zval *self = NULL; size_t src_len; - php_opencv_imgproc_t t = {0}; - opencv_imgproc_var = &t; - opencv_imgproc_var->src_path = NULL; + // php_opencv_imgproc_t t = {0}; + // opencv_imgproc_var = &t; + // opencv_imgproc_var->src_path = NULL; if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "|s", &src, &src_len) == FAILURE) { return; @@ -254,7 +252,7 @@ PHP_METHOD(opencv_imgproc, __construct) { if (src){ self = getThis(); - opencv_imgproc_var->src_path = src; + OPENCV_G(src_img_path) = src; opencv_imgproc_src_im = imread(src); opencv_imgproc_dst_im = imread(src); @@ -276,7 +274,7 @@ PHP_METHOD(opencv_imgproc, setImage) { } if (src){ - opencv_imgproc_var->src_path = src; + OPENCV_G(src_img_path) = src; opencv_imgproc_src_im = imread(src); opencv_imgproc_dst_im = imread(src); } @@ -290,21 +288,21 @@ PHP_METHOD(opencv_imgproc, setImage) { */ PHP_METHOD(opencv_imgproc, tclip) { long dst_width, dst_height; + Size tmp_size; + float ratio = 0.0, ratio_w = 0.0, ratio_h = 0.0; + int clip_top = 0,clip_bottom = 0,clip_left = 0, clip_right = 0; + if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "ll", &dst_width, &dst_height) == FAILURE) { return; } //check,import - if (!opencv_imgproc_var->src_path){ + if (!OPENCV_G(src_img_path)){ RETURN_FALSE; } - opencv_imgproc_var->width = dst_width; - opencv_imgproc_var->height = dst_height; - - Size tmp_size; - float ratio = 0.0, ratio_w = 0.0, ratio_h = 0.0; - int clip_top = 0,clip_bottom = 0,clip_left = 0, clip_right = 0; + //opencv_imgproc_var->width = dst_width; + //opencv_imgproc_var->height = dst_height; if (opencv_imgproc_src_im.size().width * 3 <= opencv_imgproc_src_im.size().height) { ratio = (float)dst_width / opencv_imgproc_src_im.size().width; @@ -403,12 +401,8 @@ PHP_METHOD(opencv_imgproc, writeImage) { */ PHP_METHOD(opencv_imgproc, __destruct) { - // if (php_opencv_imgproc->src_path) { - // efree(php_opencv_imgproc->src_path); - // php_opencv_imgproc->src_path = NULL; - // } + OPENCV_G(src_img_path) = NULL; - // php_opencv_imgproc = NULL; } /* }}} */ diff --git a/opencv.cpp b/opencv.cpp index d9c5ae7..c854e1f 100644 --- a/opencv.cpp +++ b/opencv.cpp @@ -80,7 +80,8 @@ PHP_FUNCTION(confirm_opencv_compiled) //Uncomment this function if you have INI entries static void php_opencv_init_globals(zend_opencv_globals *opencv_globals) { - opencv_globals->root_path = NULL; + opencv_globals->root_path = NULL; + opencv_globals->src_img_path = NULL; } /* }}} */ diff --git a/php_opencv.h b/php_opencv.h index bc1883f..8e76767 100644 --- a/php_opencv.h +++ b/php_opencv.h @@ -72,6 +72,7 @@ extern zend_module_entry opencv_module_entry; */ ZEND_BEGIN_MODULE_GLOBALS(opencv) char *root_path; + char *src_img_path; ZEND_END_MODULE_GLOBALS(opencv) /* Always refer to the globals in your function as OPENCV_G(variable).