CV\split function
Esse commit está contido em:
+8
-7
@@ -169,13 +169,13 @@ PHP_MINFO_FUNCTION(opencv)
|
||||
*/
|
||||
const zend_function_entry opencv_functions[] = {
|
||||
PHP_FE(confirm_opencv_compiled, NULL) /* For testing, remove later. */
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_8uc_n, ZEND_FN(opencv_cv_8uc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_8sc_n, ZEND_FN(opencv_cv_8sc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_16uc_n, ZEND_FN(opencv_cv_16uc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_16sc_n, ZEND_FN(opencv_cv_16sc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_32sc_n, ZEND_FN(opencv_cv_32sc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_32fc_n, ZEND_FN(opencv_cv_32fc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, cv_64fc_n, ZEND_FN(opencv_cv_64fc_n), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_8UC, ZEND_FN(opencv_cv_8uc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_8SC, ZEND_FN(opencv_cv_8sc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_16UC, ZEND_FN(opencv_cv_16uc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_16SC, ZEND_FN(opencv_cv_16sc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_32SC, ZEND_FN(opencv_cv_32sc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_32FC, ZEND_FN(opencv_cv_32fc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, CV_64FC, ZEND_FN(opencv_cv_64fc), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, imread, ZEND_FN(opencv_imread), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, imwrite, ZEND_FN(opencv_imwrite), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, imshow, ZEND_FN(opencv_imshow), NULL)
|
||||
@@ -189,6 +189,7 @@ const zend_function_entry opencv_functions[] = {
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, rectangleByPoint, ZEND_FN(opencv_rectangle_by_point), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, rectangleByRect, ZEND_FN(opencv_rectangle_by_rect), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, addWeighted, ZEND_FN(opencv_add_weighted), NULL)
|
||||
ZEND_NS_NAMED_FE(OPENCV_NS, split, ZEND_FN(opencv_split), NULL)
|
||||
PHP_FE_END /* Must be the last line in opencv_functions[] */
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -54,7 +54,7 @@ void opencv_interface_init(int module_number)
|
||||
|
||||
}
|
||||
|
||||
PHP_FUNCTION(opencv_cv_8uc_n)
|
||||
PHP_FUNCTION(opencv_cv_8uc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -64,7 +64,7 @@ PHP_FUNCTION(opencv_cv_8uc_n)
|
||||
RETURN_LONG(CV_8UC(num));
|
||||
}
|
||||
|
||||
PHP_FUNCTION(opencv_cv_8sc_n)
|
||||
PHP_FUNCTION(opencv_cv_8sc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -75,7 +75,7 @@ PHP_FUNCTION(opencv_cv_8sc_n)
|
||||
}
|
||||
|
||||
|
||||
PHP_FUNCTION(opencv_cv_16uc_n)
|
||||
PHP_FUNCTION(opencv_cv_16uc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -85,7 +85,7 @@ PHP_FUNCTION(opencv_cv_16uc_n)
|
||||
RETURN_LONG(CV_16UC(num));
|
||||
}
|
||||
|
||||
PHP_FUNCTION(opencv_cv_16sc_n)
|
||||
PHP_FUNCTION(opencv_cv_16sc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -95,7 +95,7 @@ PHP_FUNCTION(opencv_cv_16sc_n)
|
||||
RETURN_LONG(CV_16SC(num));
|
||||
}
|
||||
|
||||
PHP_FUNCTION(opencv_cv_32sc_n)
|
||||
PHP_FUNCTION(opencv_cv_32sc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -105,7 +105,7 @@ PHP_FUNCTION(opencv_cv_32sc_n)
|
||||
RETURN_LONG(CV_32SC(num));
|
||||
}
|
||||
|
||||
PHP_FUNCTION(opencv_cv_32fc_n)
|
||||
PHP_FUNCTION(opencv_cv_32fc)
|
||||
{
|
||||
long num;
|
||||
|
||||
@@ -116,7 +116,7 @@ PHP_FUNCTION(opencv_cv_32fc_n)
|
||||
}
|
||||
|
||||
|
||||
PHP_FUNCTION(opencv_cv_64fc_n)
|
||||
PHP_FUNCTION(opencv_cv_64fc)
|
||||
{
|
||||
long num;
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
#define OPENCV_INTERFACE_H
|
||||
|
||||
extern void opencv_interface_init(int module_number);
|
||||
extern PHP_FUNCTION(opencv_cv_8uc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_8sc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_16uc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_16sc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_32sc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_32fc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_64fc_n);
|
||||
extern PHP_FUNCTION(opencv_cv_8uc);
|
||||
extern PHP_FUNCTION(opencv_cv_8sc);
|
||||
extern PHP_FUNCTION(opencv_cv_16uc);
|
||||
extern PHP_FUNCTION(opencv_cv_16sc);
|
||||
extern PHP_FUNCTION(opencv_cv_32sc);
|
||||
extern PHP_FUNCTION(opencv_cv_32fc);
|
||||
extern PHP_FUNCTION(opencv_cv_64fc);
|
||||
#endif //OPENCV_INTERFACE_H
|
||||
|
||||
@@ -85,7 +85,50 @@ PHP_FUNCTION(opencv_add_weighted){
|
||||
opencv_mat_update_property_by_c_mat(&instance, new_obj->mat);
|
||||
RETURN_ZVAL(&instance,0,0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* CV\split
|
||||
* @param execute_data
|
||||
* @param return_value
|
||||
*/
|
||||
PHP_FUNCTION(opencv_split){
|
||||
double alpha, beta, gamma;
|
||||
long dtype = -1;
|
||||
zval *src_zval;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &src_zval, opencv_mat_ce) == FAILURE) {
|
||||
RETURN_NULL();
|
||||
}
|
||||
opencv_mat_object *src_obj = Z_PHP_MAT_OBJ_P(src_zval);
|
||||
std::vector<Mat> channels;
|
||||
split(*src_obj->mat,channels);
|
||||
zval return_val,blue_zval,green_zval,red_zval;
|
||||
Mat blue,green,red;
|
||||
array_init(&return_val);
|
||||
|
||||
object_init_ex(&blue_zval,opencv_mat_ce);
|
||||
opencv_mat_object *blue_mat_object = Z_PHP_MAT_OBJ_P(&blue_zval);
|
||||
blue = channels.at(0);
|
||||
blue_mat_object->mat = new Mat(blue);
|
||||
opencv_mat_update_property_by_c_mat(&blue_zval,blue_mat_object->mat);
|
||||
|
||||
object_init_ex(&green_zval,opencv_mat_ce);
|
||||
opencv_mat_object *green_mat_object = Z_PHP_MAT_OBJ_P(&green_zval);
|
||||
green = channels.at(1);
|
||||
green_mat_object->mat = new Mat(green);
|
||||
opencv_mat_update_property_by_c_mat(&green_zval,green_mat_object->mat);
|
||||
|
||||
object_init_ex(&red_zval,opencv_mat_ce);
|
||||
opencv_mat_object *red_mat_object = Z_PHP_MAT_OBJ_P(&red_zval);
|
||||
red = channels.at(2);
|
||||
red_mat_object->mat = new Mat(red);
|
||||
opencv_mat_update_property_by_c_mat(&red_zval,red_mat_object->mat);
|
||||
|
||||
add_next_index_zval(&return_val,&blue_zval);
|
||||
add_next_index_zval(&return_val,&green_zval);
|
||||
add_next_index_zval(&return_val,&red_zval);
|
||||
|
||||
RETURN_ZVAL(&return_val,0,0);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,5 +12,6 @@ extern void opencv_core_init(int module_number);
|
||||
extern zend_class_entry *opencv_formatter_ce;
|
||||
|
||||
PHP_FUNCTION(opencv_add_weighted);
|
||||
PHP_FUNCTION(opencv_split);
|
||||
|
||||
#endif //OPENCV_CORE_H
|
||||
|
||||
@@ -34,10 +34,7 @@ PHP_FUNCTION(opencv_cv_t_color){
|
||||
|
||||
dst_obj->mat=new Mat(dstImg);
|
||||
|
||||
//update php Mat object property
|
||||
zend_update_property_long(opencv_mat_ce, &instance, "rows", sizeof("rows")-1, dst_obj->mat->rows);
|
||||
zend_update_property_long(opencv_mat_ce, &instance, "cols", sizeof("cols")-1, dst_obj->mat->cols);
|
||||
zend_update_property_long(opencv_mat_ce, &instance, "type", sizeof("type")-1, dst_obj->mat->type());
|
||||
opencv_mat_update_property_by_c_mat(&instance,dst_obj->mat);
|
||||
|
||||
RETURN_ZVAL(&instance,0,0); //return php Mat object
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ Check for opencv constant
|
||||
<?php if (!extension_loaded("opencv")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
use function CV\{cv_8uc_n};
|
||||
use function CV\{CV_8UC};
|
||||
use const CV\{CV_8UC1,CV_8SC1,CV_16UC1,CV_16SC1,CV_32SC1,CV_32FC1,CV_64FC1};
|
||||
var_dump(CV_8UC1);
|
||||
var_dump(CV_8SC1);
|
||||
@@ -13,7 +13,7 @@ var_dump(CV_16SC1);
|
||||
var_dump(CV_32SC1);
|
||||
var_dump(CV_32FC1);
|
||||
var_dump(CV_64FC1);
|
||||
var_dump(cv_8uc_n(1));
|
||||
var_dump(CV_8UC(1));
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
--TEST--
|
||||
split test
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("opencv")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
use function CV\{
|
||||
imread, split,waitKey,imshow
|
||||
};
|
||||
use const CV\{CV_8UC3};
|
||||
use CV\{Mat,Scalar,Formatter};
|
||||
|
||||
$srcImage = new Mat(10,10,CV_8UC3,new Scalar(10,11,12));
|
||||
list($b,$g,$r) = split($srcImage);
|
||||
$srcImage->print(Formatter::FMT_PYTHON);
|
||||
$b->print(Formatter::FMT_PYTHON);
|
||||
$g->print(Formatter::FMT_PYTHON);
|
||||
$r->print(Formatter::FMT_PYTHON);
|
||||
--EXPECT--
|
||||
[[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]],
|
||||
[[ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12], [ 10, 11, 12]]]
|
||||
[[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
|
||||
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]]
|
||||
[[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],
|
||||
[ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]]
|
||||
[[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],
|
||||
[ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]]
|
||||
Referência em uma Nova Issue
Bloquear um usuário