From adc55608f1af9ab544cfd325ce1918691c282d20 Mon Sep 17 00:00:00 2001 From: laolaolulu <33310261+laolaolulu@users.noreply.github.com> Date: Mon, 13 Nov 2023 19:51:20 +0800 Subject: [PATCH] Merge pull request #24458 from laolaolulu:4.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added JS binding for `getUnconnectedOutLayersNames` * Fix error: no member named ‘vectorstd’ in namespace ‘std’ --- modules/js/generator/embindgen.py | 4 ++-- modules/js/src/core_bindings.cpp | 1 + platforms/js/opencv_js.config.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/js/generator/embindgen.py b/modules/js/generator/embindgen.py index 8a16f92f5e..005ac9f175 100644 --- a/modules/js/generator/embindgen.py +++ b/modules/js/generator/embindgen.py @@ -482,7 +482,7 @@ class JSWrapperGenerator(object): ret_type = type_dict[ptr_type] for key in type_dict: if key in ret_type: - ret_type = re.sub('(^|[^\w])' + key + '($|[^\w])', type_dict[key], ret_type) + ret_type = re.sub(r"\b" + key + r"\b", type_dict[key], ret_type) arg_types = [] unwrapped_arg_types = [] for arg in variant.args: @@ -670,7 +670,7 @@ class JSWrapperGenerator(object): # Replace types. Instead of ret_type.replace we use regular # expression to exclude false matches. # See https://github.com/opencv/opencv/issues/15514 - ret_type = re.sub('(^|[^\w])' + key + '($|[^\w])', type_dict[key], ret_type) + ret_type = re.sub(r"\b" + key + r"\b", type_dict[key], ret_type) if variant.constret and ret_type.startswith('const') == False: ret_type = 'const ' + ret_type if variant.refret and ret_type.endswith('&') == False: diff --git a/modules/js/src/core_bindings.cpp b/modules/js/src/core_bindings.cpp index dda6f9fe16..d5bf9b076c 100644 --- a/modules/js/src/core_bindings.cpp +++ b/modules/js/src/core_bindings.cpp @@ -465,6 +465,7 @@ EMSCRIPTEN_BINDINGS(binding_utils) register_vector("CharVector"); register_vector("FloatVector"); register_vector("DoubleVector"); + register_vector("StringVector"); register_vector("PointVector"); register_vector("MatVector"); register_vector("RectVector"); diff --git a/platforms/js/opencv_js.config.py b/platforms/js/opencv_js.config.py index 44f0813838..f3ed847ef5 100644 --- a/platforms/js/opencv_js.config.py +++ b/platforms/js/opencv_js.config.py @@ -147,7 +147,7 @@ video = { 'TrackerMIL_Params': [], } -dnn = {'dnn_Net': ['setInput', 'forward', 'setPreferableBackend'], +dnn = {'dnn_Net': ['setInput', 'forward', 'setPreferableBackend','getUnconnectedOutLayersNames'], '': ['readNetFromCaffe', 'readNetFromTensorflow', 'readNetFromTorch', 'readNetFromDarknet', 'readNetFromONNX', 'readNetFromTFLite', 'readNet', 'blobFromImage']}