@@ -632,7 +632,7 @@ PHP_FUNCTION(opencv_log){
632632
633633/* *
634634 * //todo mask parameter
635- * CV\log
635+ * CV\nromalize
636636 * @param execute_data
637637 * @param return_value
638638 */
@@ -665,3 +665,39 @@ PHP_FUNCTION(opencv_normalize){
665665 RETURN_NULL ();
666666
667667}
668+
669+
670+ /* *
671+ *
672+ * CV\LUT
673+ * @param execute_data
674+ * @param return_value
675+ */
676+ PHP_FUNCTION (opencv_lut){
677+ zval *src_zval, *lut_zval, *dst_zval;
678+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " OOz" ,
679+ &src_zval, opencv_mat_ce,
680+ &lut_zval, opencv_mat_ce,
681+ &dst_zval) == FAILURE) {
682+ RETURN_NULL ();
683+ }
684+ opencv_mat_object *src_object = Z_PHP_MAT_OBJ_P (src_zval);
685+ opencv_mat_object *lut_object = Z_PHP_MAT_OBJ_P (lut_zval);
686+ zval *dst_real_zval = Z_REFVAL_P (dst_zval);
687+ opencv_mat_object *dst_object;
688+ if (Z_TYPE_P (dst_real_zval) == IS_OBJECT && Z_OBJCE_P (dst_real_zval)==opencv_mat_ce){
689+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
690+ } else {
691+ zval_ptr_dtor (dst_real_zval);
692+ zval instance;
693+ Mat dst;
694+ object_init_ex (&instance,opencv_mat_ce);
695+ ZVAL_COPY_VALUE (dst_real_zval, &instance);
696+ dst_object = Z_PHP_MAT_OBJ_P (dst_real_zval);
697+ dst_object->mat = new Mat (dst);
698+ }
699+ LUT (*src_object->mat , *lut_object->mat , *dst_object->mat );
700+ opencv_mat_update_property_by_c_mat (dst_real_zval, dst_object->mat );
701+ RETURN_NULL ();
702+
703+ }
0 commit comments