php8 compatibility. now code can be compiled but tests pass randomly 80/20 with USE_ZEND_ALLOC=1 and 20/80 with export USE_ZEND_ALLOC=0. a lot of segfaults.

Esse commit está contido em:
Vladimir Goncharov
2021-01-06 00:55:06 +02:00
commit f7093d55b9
16 arquivos alterados com 220 adições e 151 exclusões
+40 -36
Ver Arquivo
@@ -183,35 +183,39 @@ PHP_MINFO_FUNCTION(opencv)
*
* Every user visible function must have an entry in opencv_functions[].
*/
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
const zend_function_entry opencv_functions[] = {
PHP_FE(confirm_opencv_compiled, NULL) /* For testing, remove later. */
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)
ZEND_NS_NAMED_FE(OPENCV_NS, waitKey, ZEND_FN(opencv_wait_key), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, moveWindow, ZEND_FN(opencv_move_window), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, namedWindow, ZEND_FN(opencv_named_window), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, cvtColor, ZEND_FN(opencv_cv_t_color), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, ellipse, ZEND_FN(opencv_ellipse), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, circle, ZEND_FN(opencv_circle), NULL)
PHP_FE(confirm_opencv_compiled, arginfo_void) /* For testing, remove later. */
ZEND_NS_NAMED_FE(OPENCV_NS, CV_8UC, ZEND_FN(opencv_cv_8uc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_8SC, ZEND_FN(opencv_cv_8sc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_16UC, ZEND_FN(opencv_cv_16uc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_16SC, ZEND_FN(opencv_cv_16sc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_32SC, ZEND_FN(opencv_cv_32sc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_32FC, ZEND_FN(opencv_cv_32fc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, CV_64FC, ZEND_FN(opencv_cv_64fc), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, imread, ZEND_FN(opencv_imread), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, imwrite, ZEND_FN(opencv_imwrite), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, imshow, ZEND_FN(opencv_imshow), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, waitKey, ZEND_FN(opencv_wait_key), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, moveWindow, ZEND_FN(opencv_move_window), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, namedWindow, ZEND_FN(opencv_named_window), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, cvtColor, ZEND_FN(opencv_cv_t_color), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, ellipse, ZEND_FN(opencv_ellipse), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, circle, ZEND_FN(opencv_circle), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, fillPoly, ZEND_FN(opencv_fill_poly), opencv_fill_poly_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, line, ZEND_FN(opencv_line), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, rectangle, ZEND_FN(opencv_rectangle), NULL)
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, line, ZEND_FN(opencv_line), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, rectangle, ZEND_FN(opencv_rectangle), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, rectangleByPoint, ZEND_FN(opencv_rectangle_by_point), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, rectangleByRect, ZEND_FN(opencv_rectangle_by_rect), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, addWeighted, ZEND_FN(opencv_add_weighted), opencv_add_weighted_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, split, ZEND_FN(opencv_split), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, split, ZEND_FN(opencv_split), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, merge, ZEND_FN(opencv_merge), opencv_merge_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, createTrackbar, ZEND_FN(opencv_create_trackbar), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, destroyWindow, ZEND_FN(opencv_destroy_window), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, getOptimalDFTSize, ZEND_FN(opencv_get_optimal_dft_size), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, createTrackbar, ZEND_FN(opencv_create_trackbar), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, destroyWindow, ZEND_FN(opencv_destroy_window), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, getOptimalDFTSize, ZEND_FN(opencv_get_optimal_dft_size), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, copyMakeBorder, ZEND_FN(opencv_copy_make_border), opencv_copy_make_border_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, dft, ZEND_FN(opencv_dft), opencv_dft_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, magnitude, ZEND_FN(opencv_magnitude), opencv_magnitude_arginfo)
@@ -220,9 +224,9 @@ const zend_function_entry opencv_functions[] = {
ZEND_NS_NAMED_FE(OPENCV_NS, normalize, ZEND_FN(opencv_normalize), opencv_normalize_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, equalizeHist, ZEND_FN(opencv_equalize_hist), opencv_equalize_hist_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, resize, ZEND_FN(opencv_resize), opencv_resize_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, putText, ZEND_FN(opencv_put_text), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, putText, ZEND_FN(opencv_put_text), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, absdiff, ZEND_FN(opencv_absdiff), opencv_absdiff_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, getTrackBarPos, ZEND_FN(opencv_get_track_bar_pos), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, getTrackBarPos, ZEND_FN(opencv_get_track_bar_pos), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, blur, ZEND_FN(opencv_blur), opencv_blur_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, GaussianBlur, ZEND_FN(opencv_gaussian_blur), opencv_gaussian_blur_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, medianBlur, ZEND_FN(opencv_median_blur), opencv_median_blur_arginfo)
@@ -238,19 +242,19 @@ const zend_function_entry opencv_functions[] = {
ZEND_NS_NAMED_FE(OPENCV_NS, threshold, ZEND_FN(opencv_threshold), opencv_threshold_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, morphologyEx, ZEND_FN(opencv_morphology_ex), opencv_morphology_ex_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, LUT, ZEND_FN(opencv_lut), opencv_lut_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, getTickCount, ZEND_FN(opencv_get_tick_count), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, getTickFrequency, ZEND_FN(opencv_get_tick_frequency), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, getTickCount, ZEND_FN(opencv_get_tick_count), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, getTickFrequency, ZEND_FN(opencv_get_tick_frequency), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, floodFill, ZEND_FN(opencv_flood_fill), opencv_flood_fill_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, setMouseCallback, ZEND_FN(opencv_set_mouse_callback), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, setMouseCallback, ZEND_FN(opencv_set_mouse_callback), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, adaptiveThreshold, ZEND_FN(opencv_adaptive_threshold), opencv_adaptive_threshold_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, findContoursWithoutHierarchy, ZEND_FN(opencv_find_contours_without_hierarchy), opencv_find_contours_without_hierarchy_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, drawContours, ZEND_FN(opencv_draw_contours), opencv_draw_contours_arginfo)
ZEND_NS_NAMED_FE(OPENCV_NS, boundingRect, ZEND_FN(opencv_bounding_rect), NULL)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, blobFromImage, ZEND_FN(opencv_dnn_blob_from_image), NULL)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromCaffe, ZEND_FN(opencv_dnn_read_net_from_caffe), NULL)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromTorch, ZEND_FN(opencv_dnn_read_net_from_torch), NULL)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromTensorflow, ZEND_FN(opencv_dnn_read_net_from_tensorflow), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, imdecode, ZEND_FN(opencv_imdecode), NULL)
ZEND_NS_NAMED_FE(OPENCV_NS, boundingRect, ZEND_FN(opencv_bounding_rect), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, blobFromImage, ZEND_FN(opencv_dnn_blob_from_image), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromCaffe, ZEND_FN(opencv_dnn_read_net_from_caffe), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromTorch, ZEND_FN(opencv_dnn_read_net_from_torch), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_DNN_NS, readNetFromTensorflow, ZEND_FN(opencv_dnn_read_net_from_tensorflow), arginfo_void)
ZEND_NS_NAMED_FE(OPENCV_NS, imdecode, ZEND_FN(opencv_imdecode), arginfo_void)
PHP_FE_END /* Must be the last line in opencv_functions[] */
};
/* }}} */
+42 -35
Ver Arquivo
@@ -50,11 +50,11 @@ void opencv_mat_free_obj(zend_object *object)
}
void opencv_mat_update_property_by_c_mat(zval *z,Mat *mat){
zend_update_property_long(opencv_mat_ce, z, "rows", sizeof("rows")-1, mat->rows);
zend_update_property_long(opencv_mat_ce, z, "cols", sizeof("cols")-1, mat->cols);
zend_update_property_long(opencv_mat_ce, z, "dims", sizeof("dims")-1, mat->dims);
zend_update_property_long(opencv_mat_ce, z, "type", sizeof("type")-1, mat->type());
//zend_update_property_long(opencv_mat_ce, z, "depth", sizeof("depth")-1, mat->depth());
zend_update_property_long(opencv_mat_ce, Z_OBJ_P(z), "rows", sizeof("rows")-1, mat->rows);
zend_update_property_long(opencv_mat_ce, Z_OBJ_P(z), "cols", sizeof("cols")-1, mat->cols);
zend_update_property_long(opencv_mat_ce, Z_OBJ_P(z), "dims", sizeof("dims")-1, mat->dims);
zend_update_property_long(opencv_mat_ce, Z_OBJ_P(z), "type", sizeof("type")-1, mat->type());
//zend_update_property_long(opencv_mat_ce, Z_OBJ_P(z), "depth", sizeof("depth")-1, mat->depth());
if (mat->dims > 2) {
zval shape_zval;
@@ -63,7 +63,7 @@ void opencv_mat_update_property_by_c_mat(zval *z,Mat *mat){
{
add_next_index_long(&shape_zval, mat->size.p[i]);
}
zend_update_property(opencv_mat_ce, z, "shape", sizeof("shape")-1, &shape_zval);
zend_update_property(opencv_mat_ce, Z_OBJ_P(z), "shape", sizeof("shape")-1, &shape_zval);
}
}
@@ -783,37 +783,39 @@ PHP_METHOD(opencv_mat, subtract)
RETURN_ZVAL(&instance,0,0); //return php Mat object
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_mat_methods[]
*/
const zend_function_entry opencv_mat_methods[] = {
PHP_ME(opencv_mat, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_mat, type, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, depth, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, channels, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, empty, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, print, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, size, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, clone, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, ones, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_mat, zeros, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_mat, zerosBySize ,zeros_by_size, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_mat, isContinuous ,is_continuous, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, isSubmatrix ,is_submatrix, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, row, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, col, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, at, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, atIdx, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, getImageROI ,get_image_roi, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_mat, type, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, depth, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, channels, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, empty, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, print, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, size, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, clone, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, ones, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_mat, zeros, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_mat, zerosBySize ,zeros_by_size, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_mat, isContinuous ,is_continuous, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, isSubmatrix ,is_submatrix, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, row, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, col, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, at, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, atIdx, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, getImageROI ,get_image_roi, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, copyTo ,copy_to, opencv_mat_copy_to_arginfo, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, convertTo ,convert_to, opencv_mat_convert_to_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, plus, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, divide, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, reshape, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, setTo ,set_to, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, add , NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_mat, subtract , NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_mat, plus, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, divide, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, reshape, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_mat, setTo ,set_to, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_mat, add , arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_mat, subtract , arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_FE_END
};
/* }}} */
@@ -827,12 +829,11 @@ const zend_function_entry opencv_mat_methods[] = {
* @param value
* @param cache_slot
*/
void opencv_mat_write_property(zval *object, zval *member, zval *value, void **cache_slot){
zval *opencv_mat_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot){
zend_string *str = zval_get_string(member);
zend_string *str = member;
char *memberName=ZSTR_VAL(str);
opencv_mat_object *obj = Z_PHP_MAT_OBJ_P(object);
opencv_mat_object *obj = get_mat_obj(object);
if(strcmp(memberName, "cols") == 0 && obj->mat->cols!=(int)zval_get_long(value)){
obj->mat->cols=(int)zval_get_long(value);
}else if(strcmp(memberName, "rows") == 0 && obj->mat->rows!=(int)zval_get_long(value)){
@@ -840,7 +841,7 @@ void opencv_mat_write_property(zval *object, zval *member, zval *value, void **c
}
zend_string_release(str);//free zend_string not memberName(zend_string->val)
std_object_handlers.write_property(object,member,value,cache_slot);
return value;
}
/**
@@ -858,6 +859,12 @@ void opencv_mat_init(void){
opencv_mat_object_handlers.write_property = opencv_mat_write_property;
zend_declare_property_null(opencv_mat_ce,"type",sizeof("type") - 1,ZEND_ACC_PRIVATE);//private Mat->type
zend_declare_property_null(opencv_mat_ce,"rows",sizeof("rows") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_mat_ce,"cols",sizeof("rows") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_mat_ce,"dims",sizeof("dims") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_mat_ce,"shape",sizeof("shape") - 1,ZEND_ACC_PUBLIC);
//zval *cd = (zval*)malloc(sizeof(zval)); /* empty zval */
//zend_declare_property(opencv_mat_ce,"shape",sizeof("shape") - 1,cd,ZEND_ACC_PUBLIC);
opencv_mat_object_handlers.free_obj = opencv_mat_free_obj;
opencv_mat_object_handlers.offset = XtOffsetOf(opencv_mat_object, std);
}
+10 -7
Ver Arquivo
@@ -224,21 +224,24 @@ PHP_METHOD(opencv_file_storage, is_opened){
RETURN_BOOL(obj->fileStorage->isOpened());
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_file_storage_methods[]
*/
const zend_function_entry opencv_file_storage_methods[] = {
PHP_ME(opencv_file_storage, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_file_storage, open, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, write, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, read, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, release, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_file_storage, isOpened ,is_opened, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_file_storage, open, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, write, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, read, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_file_storage, release, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_file_storage, isOpened ,is_opened, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
zval *opencv_file_storage_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv){
zval *opencv_file_storage_read_property(zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv){
// std::cout<<"opencv_file_storage_read_property"<<std::endl;
return std_object_handlers.read_property(object, member, type, cache_slot, rv);
+64 -42
Ver Arquivo
@@ -52,8 +52,8 @@ PHP_METHOD(opencv_point, __construct)
}
void opencv_point_update_property_by_c_point(zval *z, Point *point){
zend_update_property_long(opencv_point_ce, z, "x", sizeof("x")-1, point->x);
zend_update_property_long(opencv_point_ce, z, "y", sizeof("y")-1, point->y);
zend_update_property_long(opencv_point_ce, Z_OBJ_P(z), "x", sizeof("x")-1, point->x);
zend_update_property_long(opencv_point_ce, Z_OBJ_P(z), "y", sizeof("y")-1, point->y);
}
@@ -69,14 +69,15 @@ PHP_METHOD(opencv_point, print)
RETURN_NULL();
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_point_methods[]
*/
const zend_function_entry opencv_point_methods[] = {
PHP_ME(opencv_point, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_point, print, NULL, ZEND_ACC_PUBLIC) //todo why Point print method can effect Mat print method
PHP_ME(opencv_point, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_point, print, arginfo_void, ZEND_ACC_PUBLIC) //todo why Point print method can effect Mat print method
PHP_FE_END
};
/* }}} */
@@ -108,11 +109,11 @@ void opencv_point_free_obj(zend_object *object)
* @param value
* @param cache_slot
*/
void opencv_point_write_property(zval *object, zval *member, zval *value, void **cache_slot){
zval *opencv_point_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot){
zend_string *str = zval_get_string(member);
zend_string *str = member;
char *memberName=ZSTR_VAL(str);
opencv_point_object *obj = Z_PHP_POINT_OBJ_P(object);
opencv_point_object *obj = get_point_obj(object);
if(strcmp(memberName, "x") == 0 && obj->point->x!=(int)zval_get_long(value)){
obj->point->x=(int)zval_get_long(value);
@@ -121,7 +122,7 @@ void opencv_point_write_property(zval *object, zval *member, zval *value, void *
}
zend_string_release(str);//free zend_string not memberName(zend_string->val)
std_object_handlers.write_property(object,member,value,cache_slot);
return value;
}
/**
@@ -139,6 +140,9 @@ void opencv_point_init(int module_number){
opencv_point_object_handlers.write_property = opencv_point_write_property;
opencv_point_object_handlers.free_obj = opencv_point_free_obj;
opencv_point_object_handlers.offset = XtOffsetOf(opencv_point_object, std);
zend_declare_property_null(opencv_point_ce,"x",sizeof("x") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_point_ce,"y",sizeof("y") - 1,ZEND_ACC_PUBLIC);
}
@@ -181,7 +185,10 @@ void opencv_scalar_update_property_by_c_scalar(zval *z,Scalar *scalar){
add_next_index_double(&val,scalar->val[1]);
add_next_index_double(&val,scalar->val[2]);
add_next_index_double(&val,scalar->val[3]);
zend_update_property(opencv_scalar_ce, z, "val", sizeof("val")-1, &val);
zend_update_property(opencv_scalar_ce, Z_OBJ_P(z), "val", sizeof("val")-1, &val);
//todo: fix memory problem
/**
* 数组val在array_init()后refcount=1
* 插入成员属性zend_update_property()会自动加一次,变为2
@@ -206,6 +213,8 @@ PHP_METHOD(opencv_scalar, __construct)
Scalar scalar = Scalar((int)value1, (int)value2, (int)value3, (int)value4);
obj->scalar = new Scalar(scalar);
opencv_scalar_update_property_by_c_scalar(getThis(), obj->scalar);
//todo: fix memory problem
}
@@ -226,8 +235,8 @@ PHP_METHOD(opencv_scalar, print)
* opencv_scalar_methods[]
*/
const zend_function_entry opencv_scalar_methods[] = {
PHP_ME(opencv_scalar, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_scalar, print, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_scalar, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_scalar, print, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
@@ -247,6 +256,11 @@ void opencv_scalar_init(int module_number){
opencv_scalar_object_handlers.clone_obj = NULL;
opencv_scalar_object_handlers.free_obj = opencv_scalar_free_obj;
opencv_scalar_object_handlers.offset = XtOffsetOf(opencv_scalar_object, std);
//todo: fix memory problem
zval *val = (zval*)malloc(sizeof(zval)); /* empty zval */
zend_declare_property(opencv_scalar_ce,"val",sizeof("val") - 1, val, ZEND_ACC_PUBLIC);
}
@@ -279,8 +293,8 @@ void opencv_size_free_obj(zend_object *object)
}
void opencv_size_update_property_by_c_size(zval *z, Size *size){
zend_update_property_long(opencv_size_ce, z, "width", sizeof("width")-1, size->width);
zend_update_property_long(opencv_size_ce, z, "height", sizeof("height")-1, size->height);
zend_update_property_long(opencv_size_ce, Z_OBJ_P(z), "width", sizeof("width")-1, size->width);
zend_update_property_long(opencv_size_ce, Z_OBJ_P(z), "height", sizeof("height")-1, size->height);
}
@@ -319,8 +333,8 @@ PHP_METHOD(opencv_size, print)
* opencv_size_methods[]
*/
const zend_function_entry opencv_size_methods[] = {
PHP_ME(opencv_size, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_size, print, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_size, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_size, print, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
@@ -333,11 +347,11 @@ const zend_function_entry opencv_size_methods[] = {
* @param value
* @param cache_slot
*/
void opencv_size_write_property(zval *object, zval *member, zval *value, void **cache_slot){
zval *opencv_size_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot){
zend_string *str = zval_get_string(member);
zend_string *str = member;
char *memberName=ZSTR_VAL(str);
opencv_size_object *obj = Z_PHP_SIZE_OBJ_P(object);
opencv_size_object *obj = get_size_obj(object);
if(strcmp(memberName, "width") == 0 && obj->size->width!=(int)zval_get_long(value)){
obj->size->width=(int)zval_get_long(value);
@@ -347,6 +361,7 @@ void opencv_size_write_property(zval *object, zval *member, zval *value, void **
zend_string_release(str);//free zend_string not memberName(zend_string->val)
std_object_handlers.write_property(object,member,value,cache_slot);
return value;
}
@@ -365,6 +380,8 @@ void opencv_size_init(int module_number){
opencv_size_object_handlers.write_property = opencv_size_write_property;
opencv_size_object_handlers.free_obj = opencv_size_free_obj;
opencv_size_object_handlers.offset = XtOffsetOf(opencv_size_object, std);
zend_declare_property_null(opencv_size_ce,"width",sizeof("width") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_size_ce,"height",sizeof("height") - 1,ZEND_ACC_PUBLIC);
}
@@ -397,10 +414,10 @@ void opencv_rect_free_obj(zend_object *object)
}
void opencv_rect_update_property_by_c_rect(zval *z, Rect *rect){
zend_update_property_long(opencv_rect_ce, z, "x", sizeof("x")-1, rect->x);
zend_update_property_long(opencv_rect_ce, z, "y", sizeof("y")-1, rect->y);
zend_update_property_long(opencv_rect_ce, z, "width", sizeof("width")-1, rect->width);
zend_update_property_long(opencv_rect_ce, z, "height", sizeof("height")-1, rect->height);
zend_update_property_long(opencv_rect_ce, Z_OBJ_P(z), "x", sizeof("x")-1, rect->x);
zend_update_property_long(opencv_rect_ce, Z_OBJ_P(z), "y", sizeof("y")-1, rect->y);
zend_update_property_long(opencv_rect_ce, Z_OBJ_P(z), "width", sizeof("width")-1, rect->width);
zend_update_property_long(opencv_rect_ce, Z_OBJ_P(z), "height", sizeof("height")-1, rect->height);
}
/**
@@ -507,12 +524,12 @@ PHP_METHOD(opencv_rect, area)
* opencv_rect_methods[]
*/
const zend_function_entry opencv_rect_methods[] = {
PHP_ME(opencv_rect, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_rect, print, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, tl, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, br, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, size, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, area, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_rect, print, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, tl, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, br, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, size, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rect, area, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
@@ -525,11 +542,11 @@ const zend_function_entry opencv_rect_methods[] = {
* @param value
* @param cache_slot
*/
void opencv_rect_write_property(zval *object, zval *member, zval *value, void **cache_slot){
zval * opencv_rect_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot){
zend_string *str = zval_get_string(member);
zend_string *str = member;
char *memberName=ZSTR_VAL(str);
opencv_rect_object *obj = Z_PHP_RECT_OBJ_P(object);
opencv_rect_object *obj = get_rect_obj(object);
if(strcmp(memberName, "x") == 0 && obj->rect->x!=(int)zval_get_long(value)){
obj->rect->x=(int)zval_get_long(value);
@@ -542,7 +559,7 @@ void opencv_rect_write_property(zval *object, zval *member, zval *value, void **
}
zend_string_release(str);//free zend_string not memberName(zend_string->val)
std_object_handlers.write_property(object,member,value,cache_slot);
return value;
}
@@ -561,6 +578,11 @@ void opencv_rect_init(int module_number){
opencv_rect_object_handlers.write_property = opencv_rect_write_property;
opencv_rect_object_handlers.free_obj = opencv_rect_free_obj;
opencv_rect_object_handlers.offset = XtOffsetOf(opencv_rect_object, std);
zend_declare_property_null(opencv_rect_ce,"x",sizeof("x") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_rect_ce,"y",sizeof("y") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_rect_ce,"width",sizeof("width") - 1,ZEND_ACC_PUBLIC);
zend_declare_property_null(opencv_rect_ce,"height",sizeof("height") - 1,ZEND_ACC_PUBLIC);
}
//-----------------------------------【CV\RotatedRect】--------------------------------
@@ -590,11 +612,11 @@ zend_object* opencv_rotated_rect_create_handler(zend_class_entry *type)
* @param value
* @param cache_slot
*/
void opencv_rotated_rect_write_property(zval *object, zval *member, zval *value, void **cache_slot){
zval *opencv_rotated_rect_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot){
zend_string *str = zval_get_string(member);
zend_string *str = member;
char *memberName = ZSTR_VAL(str);
opencv_rotated_rect_object *obj = Z_PHP_ROTATED_RECT_OBJ_P(object);
opencv_rotated_rect_object *obj = get_rotated_rect_obj(object);
if(strcmp(memberName, "angle") == 0 && obj->rotatedRect->angle != (int)zval_get_long(value)){
obj->rotatedRect->angle = (float)zval_get_long(value);
}else if(strcmp(memberName, "center") == 0 ){
@@ -618,7 +640,7 @@ void opencv_rotated_rect_write_property(zval *object, zval *member, zval *value,
}
zend_string_release(str);//free zend_string not memberName(zend_string->val)
std_object_handlers.write_property(object,member,value,cache_slot);
return value;
}
@@ -632,21 +654,21 @@ void opencv_rotated_rect_free_obj(zend_object *object)
void opencv_rotated_rect_update_property_by_c_rotated_rect(zval *z, RotatedRect *rotatedRect){
//RotatedRect->angle
zend_update_property_double(opencv_rotated_rect_ce, z, "angle", sizeof("angle")-1, rotatedRect->angle);
zend_update_property_double(opencv_rotated_rect_ce, Z_OBJ_P(z), "angle", sizeof("angle")-1, rotatedRect->angle);
//RotatedRect->center
zval center_zval;
object_init_ex(&center_zval, opencv_point_ce);
opencv_point_object *center_object = Z_PHP_POINT_OBJ_P(&center_zval);
center_object->point = new Point(rotatedRect->center.x,rotatedRect->center.y);
opencv_point_update_property_by_c_point(&center_zval, center_object->point);
zend_update_property(opencv_rotated_rect_ce, z, "center", sizeof("center")-1, &center_zval);
zend_update_property(opencv_rotated_rect_ce, Z_OBJ_P(z), "center", sizeof("center")-1, &center_zval);
//RotatedRect->size
zval size_zval;
object_init_ex(&size_zval, opencv_size_ce);
opencv_size_object *size_object = Z_PHP_SIZE_OBJ_P(&size_zval);
size_object->size = new Size(rotatedRect->size);
opencv_size_update_property_by_c_size(&size_zval, size_object->size);
zend_update_property(opencv_rotated_rect_ce, z, "size", sizeof("size")-1, &size_zval);
zend_update_property(opencv_rotated_rect_ce, Z_OBJ_P(z), "size", sizeof("size")-1, &size_zval);
/**
* 数组center_zval在object_init_ex()后refcount=1
* 插入成员属性zend_update_property()会自动加一次,变为2
@@ -715,8 +737,8 @@ PHP_METHOD(opencv_rotated_rect, points)
* opencv_rect_methods[]
*/
const zend_function_entry opencv_rotated_rect_methods[] = {
PHP_ME(opencv_rotated_rect, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_rotated_rect, points, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_rotated_rect, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_rotated_rect, points, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
+6 -4
Ver Arquivo
@@ -221,15 +221,17 @@ PHP_METHOD(opencv_dnn_net, getLayersCount)
RETURN_LONG(count);
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_dnn_net_methods[]
*/
const zend_function_entry opencv_dnn_net_methods[] = {
PHP_ME(opencv_dnn_net, setInput, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, forward, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, getLayerNames, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, getLayersCount, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, setInput, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, forward, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, getLayerNames, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_dnn_net, getLayersCount, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
+6 -3
Ver Arquivo
@@ -160,13 +160,16 @@ PHP_METHOD(opencv_facemark_lbf, fit)
RETURN_NULL();//RETURN_ZVAL(landmarks_real_zval,0,0);
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_facemark_lbf_methods[]
*/
const zend_function_entry opencv_facemark_lbf_methods[] = {
PHP_ME(opencv_facemark_lbf, create, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_facemark_lbf, loadModel, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_facemark_lbf, getFaces, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_facemark_lbf, create, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_facemark_lbf, loadModel, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_facemark_lbf, getFaces, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_facemark_lbf, fit, opencv_facemark_lbf_fit_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
+9 -5
Ver Arquivo
@@ -123,6 +123,7 @@ PHP_METHOD(opencv_lbph_face_recognizer, predict)
zval *confidence_real_zval;
//todo: fix memory problem
if (confidence_zval != NULL) {
confidence_real_zval = Z_REFVAL_P(confidence_zval);
zval_ptr_dtor(confidence_real_zval);
@@ -204,16 +205,19 @@ PHP_METHOD(opencv_lbph_face_recognizer, update)
RETURN_NULL();
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_lbph_face_recognizer_methods[]
*/
const zend_function_entry opencv_lbph_face_recognizer_methods[] = {
PHP_ME(opencv_lbph_face_recognizer, create, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_lbph_face_recognizer, train, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, create, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_ME(opencv_lbph_face_recognizer, train, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, predict, opencv_lbph_face_recognizer_predict_arginfo, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, read, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, write, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, update, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, read, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, write, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_lbph_face_recognizer, update, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
+2 -2
Ver Arquivo
@@ -132,7 +132,7 @@ opencv_fcall_info_cb * opencv_fcall_info_cb_create(zend_fcall_info *fci_ptr, zen
memcpy(cb->fci_cache, fci_cache_ptr, sizeof(zend_fcall_info_cache));
Z_TRY_ADDREF(cb->fci->function_name);//todo 滑动调或窗口销毁是释放内存
cb->fci->param_count = 0;
cb->fci->no_separation = 1;
//cb->fci->no_separation = 1;
cb->fci->retval = NULL;
return cb;
@@ -209,7 +209,7 @@ PHP_FUNCTION(opencv_get_track_bar_pos){
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss", &trackbarname, &trackbarname_len, &winname, &winname_len) == FAILURE) {
return;
}
RETURN_LONG(getTrackbarPos(trackbarname, winname))
RETURN_LONG(getTrackbarPos(trackbarname, winname));
}
+6 -4
Ver Arquivo
@@ -103,16 +103,18 @@ PHP_METHOD(opencv_k_nearest, train)
RETURN_BOOL(obj->KNearest->train(*samples_obj->mat, (int)layout, *responses_obj->mat));
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_k_nearest_methods[]
*/
const zend_function_entry opencv_k_nearest_methods[] = {
PHP_ME(opencv_k_nearest, create, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_k_nearest, getDefaultK ,get_default_k, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_k_nearest, setDefaultK ,set_default_k, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_k_nearest, train, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_k_nearest, create, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
PHP_MALIAS(opencv_k_nearest, getDefaultK ,get_default_k, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_k_nearest, setDefaultK ,set_default_k, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_k_nearest, train, arginfo_void, ZEND_ACC_PUBLIC)
PHP_FE_END
};
/* }}} */
+5 -2
Ver Arquivo
@@ -132,12 +132,15 @@ PHP_METHOD(opencv_cascade_classifier, detect_multi_scale)
RETURN_NULL();
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_cascade_classifier_methods[]
*/
const zend_function_entry opencv_cascade_classifier_methods[] = {
PHP_ME(opencv_cascade_classifier, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_cascade_classifier, load, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_cascade_classifier, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_cascade_classifier, load, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_cascade_classifier, detectMultiScale ,detect_multi_scale, opencv_cascade_classifier_detect_multi_scale_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
+6 -3
Ver Arquivo
@@ -179,13 +179,16 @@ PHP_METHOD(opencv_video_capture, read)
RETURN_BOOL(result);
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
ZEND_END_ARG_INFO()
/**
* opencv_video_capture_methods[]
*/
const zend_function_entry opencv_video_capture_methods[] = {
PHP_ME(opencv_video_capture, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_video_capture, open, NULL, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_video_capture, isOpened ,is_opened, NULL, ZEND_ACC_PUBLIC)
PHP_ME(opencv_video_capture, __construct, arginfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
PHP_ME(opencv_video_capture, open, arginfo_void, ZEND_ACC_PUBLIC)
PHP_MALIAS(opencv_video_capture, isOpened ,is_opened, arginfo_void, ZEND_ACC_PUBLIC)
PHP_ME(opencv_video_capture, read, opencv_video_capture_read_arginfo, ZEND_ACC_PUBLIC)
PHP_FE_END
};
+6 -2
Ver Arquivo
@@ -22,7 +22,7 @@ var_dump($dst);
$dst->print();
--EXPECT--
object(CV\Mat)#3 (4) {
object(CV\Mat)#3 (5) {
["type":"CV\Mat":private]=>
int(0)
["rows"]=>
@@ -31,6 +31,8 @@ object(CV\Mat)#3 (4) {
int(3)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[ 10, 10, 10;
10, 10, 10;
@@ -49,7 +51,7 @@ object(CV\Scalar)#3 (1) {
}
}
[0, 0, 0, 0]
object(CV\Mat)#3 (4) {
object(CV\Mat)#3 (5) {
["type":"CV\Mat":private]=>
int(16)
["rows"]=>
@@ -58,6 +60,8 @@ object(CV\Mat)#3 (4) {
int(3)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[ 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0;
+3 -1
Ver Arquivo
@@ -13,7 +13,7 @@ var_dump($im);
//CV::imwrite('2222.png',$im);
?>
--EXPECT--
object(CV\Mat)#1 (4) {
object(CV\Mat)#1 (5) {
["type":"CV\Mat":private]=>
int(16)
["rows"]=>
@@ -22,4 +22,6 @@ object(CV\Mat)#1 (4) {
int(50)
["dims"]=>
int(2)
["shape"]=>
NULL
}
+3 -1
Ver Arquivo
@@ -14,7 +14,7 @@ var_dump($element);
$element->print();
--EXPECT--
object(CV\Mat)#3 (4) {
object(CV\Mat)#3 (5) {
["type":"CV\Mat":private]=>
int(0)
["rows"]=>
@@ -23,6 +23,8 @@ object(CV\Mat)#3 (4) {
int(7)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[ 0, 0, 0, 1, 0, 0, 0;
0, 1, 1, 1, 1, 1, 0;
+9 -3
Ver Arquivo
@@ -24,7 +24,7 @@ $ones = $ones->divide(1/9);
$ones->print(Formatter::FMT_PYTHON);
?>
--EXPECT--
object(CV\Mat)#2 (4) {
object(CV\Mat)#2 (5) {
["type":"CV\Mat":private]=>
int(16)
["rows"]=>
@@ -33,13 +33,15 @@ object(CV\Mat)#2 (4) {
int(5)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[[[255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100]],
[[255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100]],
[[255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100]],
[[255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100]],
[[255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100], [255, 100, 100]]]
object(CV\Mat)#3 (4) {
object(CV\Mat)#3 (5) {
["type":"CV\Mat":private]=>
int(0)
["rows"]=>
@@ -48,6 +50,8 @@ object(CV\Mat)#3 (4) {
int(10)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -59,7 +63,7 @@ object(CV\Mat)#3 (4) {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
object(CV\Mat)#4 (4) {
object(CV\Mat)#4 (5) {
["type":"CV\Mat":private]=>
int(0)
["rows"]=>
@@ -68,6 +72,8 @@ object(CV\Mat)#4 (4) {
int(10)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+3 -1
Ver Arquivo
@@ -20,7 +20,7 @@ $roi->print(Formatter::FMT_PYTHON);
?>
--EXPECT--
object(CV\Mat)#3 (4) {
object(CV\Mat)#3 (5) {
["type":"CV\Mat":private]=>
int(0)
["rows"]=>
@@ -29,6 +29,8 @@ object(CV\Mat)#3 (4) {
int(5)
["dims"]=>
int(2)
["shape"]=>
NULL
}
[[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],