@@ -463,7 +463,7 @@ PHP_FUNCTION(opencv_gaussian_blur){
463463 &src_zval, opencv_mat_ce,
464464 &dst_zval,
465465 &ksize_zval, opencv_size_ce,
466- &sigma_x, sigma_y,
466+ &sigma_x, & sigma_y,
467467 &border_type) == FAILURE) {
468468 RETURN_NULL ();
469469 }
@@ -483,7 +483,7 @@ PHP_FUNCTION(opencv_gaussian_blur){
483483 dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
484484 dst_object->mat = new Mat (dst);
485485 }
486- GaussianBlur (*src_object->mat , *dst_object->mat , *ksize_object->size , sigma_x, sigma_y, (int )border_type);
486+ GaussianBlur (*src_object->mat , *dst_object->mat , *ksize_object->size , ( double ) sigma_x, ( double ) sigma_y, (int )border_type);
487487 RETURN_NULL ();
488488}
489489
@@ -677,6 +677,140 @@ PHP_FUNCTION(opencv_threshold){
677677 RETURN_DOUBLE (threshold (*src_object->mat , *dst_object->mat , thresh, maxval, (int )type));
678678}
679679
680+ /* *
681+ * CV\sobel
682+ * @param execute_data
683+ * @param return_value
684+ */
685+ PHP_FUNCTION (opencv_sobel){
686+
687+ zval *src_zval, *dst_zval;
688+ long ddepth,dx,dy;
689+ long ksize=3 ;
690+
691+ double delta = 0.0 ,scale=1.0 ;
692+ long border_type = BORDER_DEFAULT;
693+ opencv_mat_object *dst_object;
694+
695+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Ozlll|lddl" ,
696+ &src_zval, opencv_mat_ce,
697+ &dst_zval,
698+ &ddepth,
699+ &dx,
700+ &dy,
701+ &ksize,
702+ &scale,
703+ &delta,
704+ &border_type) == FAILURE) {
705+ RETURN_NULL ();
706+ }
707+
708+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
709+
710+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
711+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
712+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
713+ } else {
714+ zval_ptr_dtor (dst_real_zval);
715+ zval instance;
716+ Mat dst;
717+ object_init_ex (&instance,opencv_mat_ce);
718+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
719+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
720+ dst_object->mat = new Mat (dst);
721+ }
722+ Sobel (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, (int )ksize, (double )scale, (double )delta, (int )border_type);
723+ RETURN_NULL ();
724+ }
725+
726+ /* *
727+ * CV\Scharr
728+ * @param execute_data
729+ * @param return_value
730+ */
731+ PHP_FUNCTION (opencv_scharr){
732+
733+ zval *src_zval, *dst_zval;
734+ long ddepth,dx,dy;
735+
736+ double delta = 0.0 ,scale=1.0 ;
737+ long border_type = BORDER_DEFAULT;
738+ opencv_mat_object *dst_object;
739+
740+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Ozlll|ddl" ,
741+ &src_zval, opencv_mat_ce,
742+ &dst_zval,
743+ &ddepth,
744+ &dx,
745+ &dy,
746+ &scale,
747+ &delta,
748+ &border_type) == FAILURE) {
749+ RETURN_NULL ();
750+ }
751+
752+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
753+
754+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
755+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
756+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
757+ } else {
758+ zval_ptr_dtor (dst_real_zval);
759+ zval instance;
760+ Mat dst;
761+ object_init_ex (&instance,opencv_mat_ce);
762+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
763+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
764+ dst_object->mat = new Mat (dst);
765+ }
766+ Scharr (*src_object->mat , *dst_object->mat , (int )ddepth, (int )dx, (int )dy, (double )scale, (double )delta, (int )border_type);
767+ RETURN_NULL ();
768+ }
769+
770+ /* *
771+ * CV\laplacian
772+ * @param execute_data
773+ * @param return_value
774+ */
775+ PHP_FUNCTION (opencv_laplacian){
776+
777+ zval *src_zval, *dst_zval;
778+ long ddepth;
779+ long ksize=3 ;
780+
781+ double delta = 0.0 ,scale=1.0 ;
782+ long border_type = BORDER_DEFAULT;
783+ opencv_mat_object *dst_object;
784+
785+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Ozl|lddl" ,
786+ &src_zval, opencv_mat_ce,
787+ &dst_zval,
788+ &ddepth,
789+ &ksize,
790+ &scale,
791+ &delta,
792+ &border_type) == FAILURE) {
793+ RETURN_NULL ();
794+ }
795+
796+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
797+
798+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
799+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
800+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
801+ } else {
802+ zval_ptr_dtor (dst_real_zval);
803+ zval instance;
804+ Mat dst;
805+ object_init_ex (&instance,opencv_mat_ce);
806+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
807+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
808+ dst_object->mat = new Mat (dst);
809+ }
810+ Laplacian (*src_object->mat , *dst_object->mat , (int )ddepth, (int )ksize, (double )scale, (double )delta, (int )border_type);
811+ RETURN_NULL ();
812+ }
813+
680814/* *
681815 * CV\filter2D
682816 * @param execute_data
@@ -725,6 +859,45 @@ PHP_FUNCTION(opencv_filter2D){
725859 RETURN_NULL ();
726860}
727861
862+ /* *
863+ * CV\convertScaleAbs
864+ * @param execute_data
865+ * @param return_value
866+ */
867+ PHP_FUNCTION (opencv_convert_scale_abs){
868+
869+ zval *src_zval, *dst_zval;
870+ double alpha = 1.0 ;
871+ double beta = 0.0 ;
872+
873+ opencv_mat_object *dst_object;
874+
875+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " Oz|dd" ,
876+ &src_zval, opencv_mat_ce,
877+ &dst_zval,
878+ &alpha,
879+ &beta) == FAILURE) {
880+ RETURN_NULL ();
881+ }
882+
883+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
884+
885+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
886+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
887+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
888+ } else {
889+ zval_ptr_dtor (dst_real_zval);
890+ zval instance;
891+ Mat dst;
892+ object_init_ex (&instance,opencv_mat_ce);
893+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
894+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
895+ dst_object->mat = new Mat (dst);
896+ }
897+ convertScaleAbs (*src_object->mat , *dst_object->mat , (double )alpha, (double )beta);
898+ RETURN_NULL ();
899+ }
900+
728901/* *
729902 * CV\getStructuringElement
730903 * @param execute_data
0 commit comments