@@ -983,6 +983,67 @@ PHP_FUNCTION(opencv_morphology_ex){
983983 RETURN_NULL ();
984984}
985985
986+
987+ PHP_FUNCTION (opencv_flood_fill){
988+ zval *image_zval, *seed_point_zval, *new_val_zval, *mask_zval = NULL , *rect_zval = NULL , *lo_diff_zval = NULL , *up_diff_zval = NULL ;
989+ long flags = 4 ;
990+
991+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OOOO!|O!OOl" ,
992+ &image_zval, opencv_mat_ce,
993+ &seed_point_zval, opencv_point_ce,
994+ &new_val_zval, opencv_scalar_ce,
995+ &mask_zval, opencv_mat_ce,
996+ &rect_zval, opencv_rect_ce,
997+ &lo_diff_zval, opencv_scalar_ce,
998+ &up_diff_zval, opencv_scalar_ce,
999+ &flags) == FAILURE) {
1000+ RETURN_NULL ();
1001+ }
1002+ opencv_mat_object *image_object;
1003+ opencv_point_object *seed_point_object;
1004+ opencv_scalar_object *new_value_object;
1005+
1006+ image_object = Z_PHP_MAT_OBJ_P (image_zval);
1007+ seed_point_object = Z_PHP_POINT_OBJ_P (seed_point_zval);
1008+ new_value_object = Z_PHP_SCALAR_OBJ_P (new_val_zval);
1009+
1010+ Rect *rect = 0 ;
1011+ Scalar lo_diff = Scalar (), up_diff = Scalar ();
1012+ opencv_rect_object *rect_object;
1013+ if (rect_zval != NULL ){
1014+ rect_object = Z_PHP_RECT_OBJ_P (rect_zval);
1015+ rect = rect_object->rect ;
1016+ }
1017+ if (lo_diff_zval != NULL ){
1018+ opencv_scalar_object *lo_diff_object = Z_PHP_SCALAR_OBJ_P (lo_diff_zval);
1019+ lo_diff = *lo_diff_object->scalar ;
1020+ }
1021+
1022+ if (up_diff_zval != NULL ){
1023+ opencv_scalar_object *up_diff_object = Z_PHP_SCALAR_OBJ_P (up_diff_zval);
1024+ up_diff = *up_diff_object->scalar ;
1025+ }
1026+
1027+ int result;
1028+ try {
1029+ if (mask_zval == NULL ){
1030+ result = floodFill (*image_object->mat , *seed_point_object->point , *new_value_object->scalar , rect, lo_diff, up_diff, (int )flags);
1031+ }else {
1032+ opencv_mat_object *mask_object = Z_PHP_MAT_OBJ_P (mask_zval);
1033+ result= floodFill (*image_object->mat , *mask_object->mat , *seed_point_object->point , *new_value_object->scalar , rect, lo_diff, up_diff, (int )flags);
1034+ }
1035+
1036+ if (rect_zval != NULL ){
1037+ opencv_rect_update_property_by_c_rect (rect_zval,rect_object->rect );
1038+ }
1039+
1040+ }catch (Exception e){
1041+ opencv_throw_exception (e.what ());
1042+ RETURN_NULL ();
1043+ }
1044+ RETURN_LONG (result);
1045+ }
1046+
9861047/* *
9871048 * color conversion code in CV\cvtColor,opencv enum ColorConversionCodes
9881049 * @param module_number
0 commit comments