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']}