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:
+40
-36
@@ -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[] */
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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(¢er_zval, opencv_point_ce);
|
||||
opencv_point_object *center_object = Z_PHP_POINT_OBJ_P(¢er_zval);
|
||||
center_object->point = new Point(rotatedRect->center.x,rotatedRect->center.y);
|
||||
opencv_point_update_property_by_c_point(¢er_zval, center_object->point);
|
||||
zend_update_property(opencv_rotated_rect_ce, z, "center", sizeof("center")-1, ¢er_zval);
|
||||
zend_update_property(opencv_rotated_rect_ce, Z_OBJ_P(z), "center", sizeof("center")-1, ¢er_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
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -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
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
@@ -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
@@ -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
@@ -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],
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário