@@ -463,7 +463,7 @@ PHP_FUNCTION(opencv_gaussian_blur){
463
463
&src_zval, opencv_mat_ce,
464
464
&dst_zval,
465
465
&ksize_zval, opencv_size_ce,
466
- &sigma_x, sigma_y,
466
+ &sigma_x, & sigma_y,
467
467
&border_type) == FAILURE) {
468
468
RETURN_NULL ();
469
469
}
@@ -677,6 +677,227 @@ PHP_FUNCTION(opencv_threshold){
677
677
RETURN_DOUBLE (threshold (*src_object->mat , *dst_object->mat , thresh, maxval, (int )type));
678
678
}
679
679
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
+
680
901
/* *
681
902
* CV\getStructuringElement
682
903
* @param execute_data
0 commit comments