From db3654ef51b156feab4f59c13f2ee41ca2ab9a85 Mon Sep 17 00:00:00 2001 From: Kumataro Date: Sun, 21 Jul 2024 10:00:29 +0900 Subject: [PATCH] python: prefer cv::Mat over cv::UMat in python binding --- modules/python/src2/gen2.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/python/src2/gen2.py b/modules/python/src2/gen2.py index 3249c57f82..af187e5d3f 100755 --- a/modules/python/src2/gen2.py +++ b/modules/python/src2/gen2.py @@ -854,7 +854,22 @@ class FuncInfo(object): all_code_variants = [] + # See https://github.com/opencv/opencv/issues/25928 + # Conversion to UMat is expensive more than conversion to Mat. + # To reduce this cost, conversion to Mat is prefer than to UMat. + variants = [] + variants_umat = [] for v in self.variants: + hasUMat = False + for a in v.args: + hasUMat = hasUMat or "UMat" in a.tp + if hasUMat : + variants_umat.append(v) + else: + variants.append(v) + variants.extend(variants_umat) + + for v in variants: code_decl = "" code_ret = "" code_cvt_list = []