@@ -246,6 +246,7 @@ PHP_FUNCTION(opencv_equalize_hist){
246246 if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval)==opencv_mat_ce){
247247 dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
248248 } else {
249+ zval_ptr_dtor (dst_real_zval);
249250 zval instance;
250251 Mat dst;
251252 object_init_ex (&instance,opencv_mat_ce);
@@ -282,6 +283,7 @@ PHP_FUNCTION(opencv_resize){
282283 if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval)==opencv_mat_ce){
283284 dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
284285 } else {
286+ zval_ptr_dtor (dst_real_zval);
285287 zval instance;
286288 Mat dst;
287289 object_init_ex (&instance,opencv_mat_ce);
@@ -298,6 +300,11 @@ PHP_FUNCTION(opencv_resize){
298300 RETURN_NULL ();
299301}
300302
303+ /* *
304+ * CV\putText
305+ * @param execute_data
306+ * @param return_value
307+ */
301308PHP_FUNCTION (opencv_put_text){
302309
303310 zval *img_zval, *org_zval,*color_zval;
@@ -323,6 +330,115 @@ PHP_FUNCTION(opencv_put_text){
323330 putText (*img_object->mat , text, *org_object->point , (int )font_face, (int )font_scale, *color_object->scalar , (int )thickness, (int )line_type, (bool )bottom_left_origin);
324331}
325332
333+ /* *
334+ * CV\blur
335+ * @param execute_data
336+ * @param return_value
337+ */
338+ PHP_FUNCTION (opencv_blur){
339+
340+ zval *src_zval, *dst_zval, *ksize_zval, *anchor_zval = NULL ;
341+ long border_type = BORDER_DEFAULT;
342+ Point anchor = Point (-1 ,-1 );
343+ opencv_mat_object *dst_object;
344+
345+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OzO|Ol" ,
346+ &src_zval, opencv_mat_ce,
347+ &dst_zval,
348+ &ksize_zval, opencv_size_ce,
349+ &anchor_zval, opencv_point_ce,
350+ &border_type) == FAILURE) {
351+ RETURN_NULL ();
352+ }
353+
354+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
355+ opencv_size_object *ksize_object = Z_PHP_SIZE_OBJ_P (ksize_zval);
356+ if (anchor_zval != NULL ){
357+ opencv_point_object *anchor_object = Z_PHP_POINT_OBJ_P (anchor_zval);
358+ anchor = *anchor_object->point ;
359+ }
360+
361+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
362+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
363+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
364+ } else {
365+ zval_ptr_dtor (dst_real_zval);
366+ zval instance;
367+ Mat dst;
368+ object_init_ex (&instance,opencv_mat_ce);
369+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
370+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
371+ dst_object->mat = new Mat (dst);
372+ }
373+ blur (*src_object->mat , *dst_object->mat , *ksize_object->size , anchor, (int )border_type);
374+ RETURN_NULL ();
375+ }
376+
377+ PHP_FUNCTION (opencv_gaussian_blur){
378+
379+ zval *src_zval, *dst_zval, *ksize_zval;
380+ double sigma_x, sigma_y = 0 ;
381+ long border_type = BORDER_DEFAULT;
382+ opencv_mat_object *dst_object;
383+
384+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OzOd|dl" ,
385+ &src_zval, opencv_mat_ce,
386+ &dst_zval,
387+ &ksize_zval, opencv_size_ce,
388+ &sigma_x, sigma_y,
389+ &border_type) == FAILURE) {
390+ RETURN_NULL ();
391+ }
392+
393+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
394+ opencv_size_object *ksize_object = Z_PHP_SIZE_OBJ_P (ksize_zval);
395+
396+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
397+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
398+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
399+ } else {
400+ zval_ptr_dtor (dst_real_zval);
401+ zval instance;
402+ Mat dst;
403+ object_init_ex (&instance,opencv_mat_ce);
404+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
405+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
406+ dst_object->mat = new Mat (dst);
407+ }
408+ GaussianBlur (*src_object->mat , *dst_object->mat , *ksize_object->size , sigma_x, sigma_y, (int )border_type);
409+ RETURN_NULL ();
410+ }
411+
412+ PHP_FUNCTION (opencv_median_blur){
413+
414+ zval *src_zval, *dst_zval;
415+ long ksize;
416+ opencv_mat_object *dst_object;
417+
418+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Ozl" ,
419+ &src_zval, opencv_mat_ce,
420+ &dst_zval, &ksize) == FAILURE) {
421+ RETURN_NULL ();
422+ }
423+
424+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
425+
426+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
427+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
428+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
429+ } else {
430+ zval_ptr_dtor (dst_real_zval);
431+ zval instance;
432+ Mat dst;
433+ object_init_ex (&instance,opencv_mat_ce);
434+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
435+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
436+ dst_object->mat = new Mat (dst);
437+ }
438+ medianBlur (*src_object->mat , *dst_object->mat , (int )ksize);
439+ RETURN_NULL ();
440+ }
441+
326442/* *
327443 * color conversion code in CV\cvtColor,opencv enum ColorConversionCodes
328444 * @param module_number
0 commit comments