@@ -578,6 +578,64 @@ PHP_METHOD(opencv_mat, set_to)
578578
579579}
580580
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+
581639/* *
582640 * opencv_mat_methods[]
583641 */
@@ -604,6 +662,8 @@ const zend_function_entry opencv_mat_methods[] = {
604662 PHP_ME (opencv_mat, plus, NULL , ZEND_ACC_PUBLIC)
605663 PHP_ME (opencv_mat, divide, NULL , ZEND_ACC_PUBLIC)
606664 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)
607667 PHP_FE_END
608668};
609669/* }}} */
0 commit comments