@@ -102,30 +102,34 @@ PHP_METHOD(opencv_lbph_face_recognizer, train)
102102
103103}
104104
105- PHP_METHOD (opencv_lbph_face_recognizer, predict)
106- {
107- zval *src_zval;
108- if (zend_parse_parameters (ZEND_NUM_ARGS (), " o" , &src_zval, opencv_mat_ce) == FAILURE) {
109- RETURN_NULL ();
110- }
111- opencv_lbph_face_recognizer_object *obj = Z_PHP_LBPH_FACE_RECOGNIZER_OBJ_P (getThis ());
112- opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
113- int predict_label = obj->faceRecognizer ->predict (*src_object->mat );
114- RETURN_LONG (predict_label);
115- }
105+ ZEND_BEGIN_ARG_INFO_EX (opencv_lbph_face_recognizer_predict_arginfo, 0 , 0 , 2 )
106+ ZEND_ARG_INFO(0 , src)
107+ ZEND_ARG_INFO(1 , confidence)
108+ ZEND_END_ARG_INFO()
116109
117- PHP_METHOD (opencv_lbph_face_recognizer, predictConfidence )
110+ PHP_METHOD(opencv_lbph_face_recognizer, predict )
118111{
119- zval *src_zval;
120- int label = 0 ;
112+ zval *src_zval, *confidence_zval = NULL ;
113+ int label;
121114 double confidence = 0 ;
122- if (zend_parse_parameters (ZEND_NUM_ARGS (), " o" , &src_zval, opencv_mat_ce) == FAILURE) {
115+
116+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " O|z" , &src_zval, opencv_mat_ce, &confidence_zval) == FAILURE) {
123117 RETURN_NULL ();
124118 }
119+
125120 opencv_lbph_face_recognizer_object *obj = Z_PHP_LBPH_FACE_RECOGNIZER_OBJ_P (getThis ());
126121 opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
127122 obj->faceRecognizer ->predict (*src_object->mat , label, confidence);
128- RETURN_DOUBLE (confidence);
123+
124+ zval *confidence_real_zval;
125+
126+ if (confidence_zval != NULL ) {
127+ confidence_real_zval = Z_REFVAL_P (confidence_zval);
128+ zval_ptr_dtor (confidence_real_zval);
129+ ZVAL_DOUBLE (confidence_real_zval, confidence);
130+ }
131+
132+ RETURN_LONG (label);
129133}
130134
131135PHP_METHOD (opencv_lbph_face_recognizer, read)
@@ -206,9 +210,7 @@ PHP_METHOD(opencv_lbph_face_recognizer, update)
206210const zend_function_entry opencv_lbph_face_recognizer_methods[] = {
207211 PHP_ME (opencv_lbph_face_recognizer, create, NULL , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
208212 PHP_ME (opencv_lbph_face_recognizer, train, NULL , ZEND_ACC_PUBLIC)
209- PHP_ME (opencv_lbph_face_recognizer, predict, NULL , ZEND_ACC_PUBLIC)
210- // todo
211- PHP_ME (opencv_lbph_face_recognizer, predictConfidence, NULL , ZEND_ACC_PUBLIC)
213+ PHP_ME (opencv_lbph_face_recognizer, predict, opencv_lbph_face_recognizer_predict_arginfo, ZEND_ACC_PUBLIC)
212214 PHP_ME (opencv_lbph_face_recognizer, read, NULL , ZEND_ACC_PUBLIC)
213215 PHP_ME (opencv_lbph_face_recognizer, write, NULL , ZEND_ACC_PUBLIC)
214216 PHP_ME (opencv_lbph_face_recognizer, update, NULL , ZEND_ACC_PUBLIC)
0 commit comments