@@ -42,7 +42,7 @@ PHP_FUNCTION(opencv_cv_t_color){
42
42
}
43
43
// get src mat object from mat_zval
44
44
opencv_mat_object *src_obj = Z_PHP_MAT_OBJ_P (mat_zval);
45
- cvtColor (*(src_obj->mat ),dstImg,code);
45
+ cvtColor (*(src_obj->mat ), dstImg, ( int ) code);
46
46
47
47
// new PHP Mat bing cv::cvtColor dstImg.
48
48
zval instance;
@@ -88,7 +88,7 @@ PHP_FUNCTION(opencv_ellipse){
88
88
opencv_point_object *point_obj = Z_PHP_POINT_OBJ_P (point_zval);
89
89
opencv_size_object *size_obj = Z_PHP_SIZE_OBJ_P (size_zval);
90
90
opencv_scalar_object *scalar_obj = Z_PHP_SCALAR_OBJ_P (scalar_zval);
91
- ellipse (*(mat_obj->mat ), *(point_obj->point ), *(size_obj->size ), angle, startAngle, endAngle, *(scalar_obj->scalar ), thickness, lineType ,shift);
91
+ ellipse (*(mat_obj->mat ), *(point_obj->point ), *(size_obj->size ), angle, startAngle, endAngle, *(scalar_obj->scalar ), ( int ) thickness, ( int ) lineType ,( int ) shift);
92
92
93
93
RETURN_NULL ();
94
94
}
@@ -99,7 +99,7 @@ PHP_FUNCTION(opencv_ellipse){
99
99
PHP_FUNCTION (opencv_circle){
100
100
101
101
long radius, thickness = 1 , lineType = LINE_8, shift = 0 ;
102
- zval *mat_zval, *point_zval, *size_zval, * scalar_zval;
102
+ zval *mat_zval, *point_zval, *scalar_zval;
103
103
if (zend_parse_parameters (ZEND_NUM_ARGS (), " OOlO|lll" ,
104
104
&mat_zval, opencv_mat_ce,
105
105
&point_zval, opencv_point_ce,
@@ -113,7 +113,7 @@ PHP_FUNCTION(opencv_circle){
113
113
opencv_point_object *point_obj = Z_PHP_POINT_OBJ_P (point_zval);
114
114
opencv_scalar_object *scalar_obj = Z_PHP_SCALAR_OBJ_P (scalar_zval);
115
115
116
- circle (*(mat_obj->mat ),*(point_obj->point ), radius, *(scalar_obj->scalar ),thickness,lineType ,shift);
116
+ circle (*(mat_obj->mat ),*(point_obj->point ), ( int ) radius, *(scalar_obj->scalar ),( int ) thickness, ( int ) lineType ,( int ) shift);
117
117
118
118
RETURN_NULL ();
119
119
}
@@ -218,7 +218,7 @@ PHP_FUNCTION(opencv_line){
218
218
opencv_point_object *end_point_obj = Z_PHP_POINT_OBJ_P (end_point_zval);
219
219
opencv_scalar_object *scalar_obj = Z_PHP_SCALAR_OBJ_P (scalar_zval);
220
220
221
- line (*(mat_obj->mat ),*(start_point_obj->point ),*(end_point_obj->point ),*(scalar_obj->scalar ), thickness, lineType, shift);
221
+ line (*(mat_obj->mat ),*(start_point_obj->point ),*(end_point_obj->point ),*(scalar_obj->scalar ), ( int ) thickness, ( int ) lineType, ( int ) shift);
222
222
223
223
RETURN_NULL ();
224
224
}
@@ -244,7 +244,7 @@ PHP_FUNCTION(opencv_rectangle){
244
244
opencv_mat_object *mat_obj = Z_PHP_MAT_OBJ_P (mat_zval);
245
245
opencv_scalar_object *scalar_obj = Z_PHP_SCALAR_OBJ_P (color_zval);
246
246
247
- rectangle (*(mat_obj->mat ), Point (startX, startY), Point (endX, endY), *(scalar_obj->scalar ), thickness, lineType, shift);
247
+ rectangle (*(mat_obj->mat ), Point (( int ) startX, ( int ) startY), Point (( int ) endX, ( int ) endY), *(scalar_obj->scalar ), ( int ) thickness, ( int ) lineType, ( int ) shift);
248
248
249
249
RETURN_NULL ();
250
250
}
@@ -272,7 +272,7 @@ PHP_FUNCTION(opencv_rectangle_by_point){
272
272
opencv_point_object *end_point_obj = Z_PHP_POINT_OBJ_P (end_point_zval);
273
273
opencv_scalar_object *scalar_obj = Z_PHP_SCALAR_OBJ_P (color_zval);
274
274
275
- rectangle (*(mat_obj->mat ), *(start_point_obj->point ), *(end_point_obj->point ), *(scalar_obj->scalar ), thickness, lineType, shift);
275
+ rectangle (*(mat_obj->mat ), *(start_point_obj->point ), *(end_point_obj->point ), *(scalar_obj->scalar ), ( int ) thickness, ( int ) lineType, ( int ) shift);
276
276
277
277
RETURN_NULL ();
278
278
}
@@ -719,7 +719,7 @@ PHP_FUNCTION(opencv_sobel){
719
719
dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
720
720
dst_object->mat = new Mat (dst);
721
721
}
722
- Sobel (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, (int )ksize, ( double ) scale, ( double ) delta, (int )border_type);
722
+ Sobel (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, (int )ksize, scale, delta, (int )border_type);
723
723
RETURN_NULL ();
724
724
}
725
725
@@ -733,7 +733,7 @@ PHP_FUNCTION(opencv_scharr){
733
733
zval *src_zval, *dst_zval;
734
734
long ddepth,dx,dy;
735
735
736
- double delta = 0.0 ,scale= 1.0 ;
736
+ double delta = 0.0 , scale = 1.0 ;
737
737
long border_type = BORDER_DEFAULT;
738
738
opencv_mat_object *dst_object;
739
739
@@ -763,7 +763,7 @@ PHP_FUNCTION(opencv_scharr){
763
763
dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
764
764
dst_object->mat = new Mat (dst);
765
765
}
766
- Scharr (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, ( double ) scale, ( double ) delta, (int )border_type);
766
+ Scharr (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, scale, delta, (int )border_type);
767
767
RETURN_NULL ();
768
768
}
769
769
@@ -807,7 +807,7 @@ PHP_FUNCTION(opencv_laplacian){
807
807
dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
808
808
dst_object->mat = new Mat (dst);
809
809
}
810
- Laplacian (*src_object->mat , *dst_object->mat , (int )ddepth, (int )ksize, ( double ) scale, ( double ) delta, (int )border_type);
810
+ Laplacian (*src_object->mat , *dst_object->mat , (int )ddepth, (int )ksize, scale, delta, (int )border_type);
811
811
RETURN_NULL ();
812
812
}
813
813
@@ -894,7 +894,7 @@ PHP_FUNCTION(opencv_convert_scale_abs){
894
894
dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
895
895
dst_object->mat = new Mat (dst);
896
896
}
897
- convertScaleAbs (*src_object->mat , *dst_object->mat , ( double ) alpha, ( double ) beta);
897
+ convertScaleAbs (*src_object->mat , *dst_object->mat , alpha, beta);
898
898
RETURN_NULL ();
899
899
}
900
900
@@ -907,7 +907,6 @@ PHP_FUNCTION(opencv_get_structuring_element){
907
907
long shape;
908
908
zval *ksize_zval, *anchor_zval = NULL ;
909
909
Point anchor = Point (-1 ,-1 );
910
- opencv_mat_object *dst_object;
911
910
Mat dst;
912
911
if (zend_parse_parameters (ZEND_NUM_ARGS (), " lO|O" ,
913
912
&shape,
@@ -934,6 +933,55 @@ PHP_FUNCTION(opencv_get_structuring_element){
934
933
RETURN_ZVAL (&instance,0 ,0 ); // return php Mat object
935
934
}
936
935
936
+
937
+ PHP_FUNCTION (opencv_morphology_ex){
938
+
939
+ zval *src_zval, *dst_zval, *kernel_zval, *anchor_zval = NULL , *border_value_zval = NULL ;
940
+ long op, iterations = 1 , border_type = BORDER_CONSTANT;
941
+
942
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OzlO|OllO" ,
943
+ &src_zval, opencv_mat_ce,
944
+ &dst_zval,
945
+ &op,
946
+ &kernel_zval, opencv_mat_ce,
947
+ &anchor_zval, opencv_point_ce,
948
+ &iterations, &border_type,
949
+ &border_value_zval, opencv_scalar_ce) == FAILURE) {
950
+ RETURN_NULL ();
951
+ }
952
+ opencv_mat_object *src_object, *dst_object, *kernel_object;
953
+ Point anchor = Point (-1 ,-1 );
954
+ Scalar border_value = morphologyDefaultBorderValue ();
955
+
956
+ src_object = Z_PHP_MAT_OBJ_P (src_zval);
957
+ kernel_object = Z_PHP_MAT_OBJ_P (kernel_zval);
958
+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
959
+
960
+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
961
+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
962
+ } else {
963
+ zval_ptr_dtor (dst_real_zval);
964
+ zval instance;
965
+ Mat dst;
966
+ object_init_ex (&instance,opencv_mat_ce);
967
+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
968
+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
969
+ dst_object->mat = new Mat (dst);
970
+ }
971
+
972
+ if (anchor_zval != NULL ){
973
+ opencv_point_object *anchor_object = Z_PHP_POINT_OBJ_P (anchor_zval);
974
+ anchor = *anchor_object->point ;
975
+ }
976
+
977
+ if (border_value_zval != NULL ){
978
+ opencv_scalar_object *border_value_object = Z_PHP_SCALAR_OBJ_P (border_value_zval);
979
+ border_value = *border_value_object->scalar ;
980
+ }
981
+ morphologyEx (*src_object->mat , *dst_object->mat , int (op), *kernel_object->mat , anchor, (int )iterations, (int )border_type, border_value);
982
+ RETURN_NULL ();
983
+ }
984
+
937
985
/* *
938
986
* color conversion code in CV\cvtColor,opencv enum ColorConversionCodes
939
987
* @param module_number
0 commit comments