@@ -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 }
@@ -677,6 +677,227 @@ 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+
814+ /* *
815+ * CV\filter2D
816+ * @param execute_data
817+ * @param return_value
818+ */
819+ PHP_FUNCTION (opencv_filter2D){
820+
821+ zval *src_zval, *dst_zval, *kernel_zval, *anchor_zval = NULL ;
822+ long ddepth;
823+ Point anchor = Point (-1 ,-1 );
824+ double delta = 0.0 ;
825+ long border_type = BORDER_DEFAULT;
826+ opencv_mat_object *dst_object;
827+
828+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OzlO|Odl" ,
829+ &src_zval, opencv_mat_ce,
830+ &dst_zval,
831+ &ddepth,
832+ &kernel_zval, opencv_mat_ce,
833+ &anchor_zval, opencv_point_ce,
834+ &delta,
835+ &border_type) == FAILURE) {
836+ RETURN_NULL ();
837+ }
838+
839+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
840+ opencv_mat_object *kernel_object = Z_PHP_MAT_OBJ_P (kernel_zval);
841+ if (anchor_zval != NULL ){
842+ opencv_point_object *anchor_object = Z_PHP_POINT_OBJ_P (anchor_zval);
843+ anchor = *anchor_object->point ;
844+ }
845+
846+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
847+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval) == opencv_mat_ce){
848+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
849+ } else {
850+ zval_ptr_dtor (dst_real_zval);
851+ zval instance;
852+ Mat dst;
853+ object_init_ex (&instance,opencv_mat_ce);
854+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
855+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
856+ dst_object->mat = new Mat (dst);
857+ }
858+ filter2D (*src_object->mat , *dst_object->mat , (int )ddepth, *kernel_object->mat , anchor, delta, (int )border_type);
859+ RETURN_NULL ();
860+ }
861+
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+
680901/* *
681902 * CV\getStructuringElement
682903 * @param execute_data
0 commit comments