@@ -578,6 +578,64 @@ PHP_METHOD(opencv_mat, set_to)
578
578
579
579
}
580
580
581
+ /* *
582
+ * CV\Mat::add()
583
+ * @param execute_data
584
+ * @param return_value
585
+ */
586
+ PHP_METHOD (opencv_mat, add)
587
+ {
588
+ zval *value1_zval, *value2_zval;
589
+
590
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OO" ,
591
+ &value1_zval, opencv_mat_ce,
592
+ &value2_zval, opencv_mat_ce
593
+ ) == FAILURE) {
594
+ RETURN_NULL ();
595
+ }
596
+
597
+ opencv_mat_object *value1_obj = Z_PHP_MAT_OBJ_P (value1_zval);
598
+ opencv_mat_object *value2_obj = Z_PHP_MAT_OBJ_P (value2_zval);
599
+ zval instance;
600
+ object_init_ex (&instance, opencv_mat_ce);
601
+ opencv_mat_object *obj = Z_PHP_MAT_OBJ_P (&instance);
602
+
603
+ Mat im = *value1_obj->mat + *value2_obj->mat ;
604
+
605
+ obj->mat =new Mat (im);
606
+ // update php Mat object property
607
+ opencv_mat_update_property_by_c_mat (&instance, obj->mat );
608
+
609
+ RETURN_ZVAL (&instance,0 ,0 ); // return php Mat object
610
+ }
611
+
612
+ PHP_METHOD (opencv_mat, subtract)
613
+ {
614
+ zval *value1_zval, *value2_zval;
615
+
616
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OO" ,
617
+ &value1_zval, opencv_mat_ce,
618
+ &value2_zval, opencv_mat_ce
619
+ ) == FAILURE) {
620
+ RETURN_NULL ();
621
+ }
622
+
623
+ opencv_mat_object *value1_obj = Z_PHP_MAT_OBJ_P (value1_zval);
624
+ opencv_mat_object *value2_obj = Z_PHP_MAT_OBJ_P (value2_zval);
625
+ zval instance;
626
+ object_init_ex (&instance, opencv_mat_ce);
627
+ opencv_mat_object *obj = Z_PHP_MAT_OBJ_P (&instance);
628
+
629
+ Mat im = *value1_obj->mat - *value2_obj->mat ;
630
+
631
+ obj->mat =new Mat (im);
632
+ // update php Mat object property
633
+ opencv_mat_update_property_by_c_mat (&instance, obj->mat );
634
+
635
+ RETURN_ZVAL (&instance,0 ,0 ); // return php Mat object
636
+ }
637
+
638
+
581
639
/* *
582
640
* opencv_mat_methods[]
583
641
*/
@@ -604,6 +662,8 @@ const zend_function_entry opencv_mat_methods[] = {
604
662
PHP_ME (opencv_mat, plus, NULL , ZEND_ACC_PUBLIC)
605
663
PHP_ME (opencv_mat, divide, NULL , ZEND_ACC_PUBLIC)
606
664
PHP_MALIAS (opencv_mat, setTo ,set_to, NULL , ZEND_ACC_PUBLIC)
665
+ PHP_ME (opencv_mat, add , NULL , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
666
+ PHP_ME (opencv_mat, subtract , NULL , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
607
667
PHP_FE_END
608
668
};
609
669
/* }}} */
0 commit comments