1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-28 14:53:03 +04:00

Merge branch 4.x

This commit is contained in:
Alexander Smorkalov
2025-02-05 09:28:27 +03:00
180 changed files with 11419 additions and 1819 deletions
+1
View File
@@ -66,6 +66,7 @@ def main():
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: C++",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Scientific/Engineering",
+1
View File
@@ -139,6 +139,7 @@ if(${PYTHON}_VERSION_STRING VERSION_GREATER "3.6" AND PYTHON_DEFAULT_VERSION VER
# halts on hard error.
add_custom_command(
TARGET copy_opencv_typing_stubs
POST_BUILD
COMMAND ${PYTHON_DEFAULT_EXECUTABLE} ${PYTHON_SOURCE_DIR}/src2/copy_typings_stubs_on_success.py
--stubs_dir ${OPENCV_PYTHON_BINDINGS_DIR}/cv2
--output_dir ${__loader_path}/cv2
@@ -179,8 +179,10 @@ class AnyTypeNode(TypeNode):
class PrimitiveTypeNode(TypeNode):
"""Type node representing a primitive built-in types e.g. int, float, str.
"""
def __init__(self, ctype_name: str, typename: Optional[str] = None) -> None:
super().__init__(ctype_name)
def __init__(self, ctype_name: str,
typename: Optional[str] = None,
required_modules: Tuple[str, ...] = ()) -> None:
super().__init__(ctype_name, required_modules)
self._typename = typename if typename is not None else ctype_name
@property
@@ -188,28 +190,32 @@ class PrimitiveTypeNode(TypeNode):
return self._typename
@classmethod
def int_(cls, ctype_name: Optional[str] = None):
def int_(cls, ctype_name: Optional[str] = None,
required_modules: Tuple[str, ...] = ()):
if ctype_name is None:
ctype_name = "int"
return PrimitiveTypeNode(ctype_name, typename="int")
return PrimitiveTypeNode(ctype_name, typename="int", required_modules=required_modules)
@classmethod
def float_(cls, ctype_name: Optional[str] = None):
def float_(cls, ctype_name: Optional[str] = None,
required_modules: Tuple[str, ...] = ()):
if ctype_name is None:
ctype_name = "float"
return PrimitiveTypeNode(ctype_name, typename="float")
return PrimitiveTypeNode(ctype_name, typename="float", required_modules=required_modules)
@classmethod
def bool_(cls, ctype_name: Optional[str] = None):
def bool_(cls, ctype_name: Optional[str] = None,
required_modules: Tuple[str, ...] = ()):
if ctype_name is None:
ctype_name = "bool"
return PrimitiveTypeNode(ctype_name, typename="bool")
return PrimitiveTypeNode(ctype_name, typename="bool", required_modules=required_modules)
@classmethod
def str_(cls, ctype_name: Optional[str] = None):
def str_(cls, ctype_name: Optional[str] = None,
required_modules: Tuple[str, ...] = ()):
if ctype_name is None:
ctype_name = "string"
return PrimitiveTypeNode(ctype_name, "str")
return PrimitiveTypeNode(ctype_name, "str", required_modules=required_modules)
class AliasRefTypeNode(TypeNode):
@@ -136,18 +136,23 @@ _PREDEFINED_TYPES = (
dtype="numpy.float64"),
NDArrayTypeNode("vector<uchar>", dtype="numpy.uint8"),
NDArrayTypeNode("vector_uchar", dtype="numpy.uint8"),
AliasTypeNode.class_("LayerId", "DictValue"),
# DNN, optional
AliasTypeNode.class_("LayerId", "DictValue", required_modules=("dnn",)),
AliasTypeNode.dict_("LayerParams",
key_type=PrimitiveTypeNode.str_(),
value_type=UnionTypeNode("DictValue", items=(
PrimitiveTypeNode.int_(),
PrimitiveTypeNode.float_(),
PrimitiveTypeNode.str_())
)),
PrimitiveTypeNode.int_("cvflann_flann_distance_t"),
PrimitiveTypeNode.int_("flann_flann_distance_t"),
PrimitiveTypeNode.int_("cvflann_flann_algorithm_t"),
PrimitiveTypeNode.int_("flann_flann_algorithm_t"),
),
required_modules=("dnn",)),
# Flann, optional
PrimitiveTypeNode.int_("cvflann_flann_distance_t", required_modules=("flann",)),
PrimitiveTypeNode.int_("flann_flann_distance_t", required_modules=("flann",)),
PrimitiveTypeNode.int_("cvflann_flann_algorithm_t", required_modules=("flann",)),
PrimitiveTypeNode.int_("flann_flann_algorithm_t", required_modules=("flann",)),
AliasTypeNode.dict_("flann_IndexParams",
key_type=PrimitiveTypeNode.str_(),
value_type=UnionTypeNode("flann_IndexParams::value", items=(
@@ -155,7 +160,9 @@ _PREDEFINED_TYPES = (
PrimitiveTypeNode.int_(),
PrimitiveTypeNode.float_(),
PrimitiveTypeNode.str_())
), export_name="IndexParams"),
),
export_name="IndexParams",
required_modules=("flann",)),
AliasTypeNode.dict_("flann_SearchParams",
key_type=PrimitiveTypeNode.str_(),
value_type=UnionTypeNode("flann_IndexParams::value", items=(
@@ -163,17 +170,29 @@ _PREDEFINED_TYPES = (
PrimitiveTypeNode.int_(),
PrimitiveTypeNode.float_(),
PrimitiveTypeNode.str_())
), export_name="SearchParams"),
AliasTypeNode.dict_("map_string_and_string", PrimitiveTypeNode.str_("map_string_and_string::key"),
PrimitiveTypeNode.str_("map_string_and_string::value")),
AliasTypeNode.dict_("map_string_and_int", PrimitiveTypeNode.str_("map_string_and_int::key"),
PrimitiveTypeNode.int_("map_string_and_int::value")),
AliasTypeNode.dict_("map_string_and_vector_size_t", PrimitiveTypeNode.str_("map_string_and_vector_size_t::key"),
SequenceTypeNode("map_string_and_vector_size_t::value", PrimitiveTypeNode.int_("size_t"))),
AliasTypeNode.dict_("map_string_and_vector_float", PrimitiveTypeNode.str_("map_string_and_vector_float::key"),
SequenceTypeNode("map_string_and_vector_float::value", PrimitiveTypeNode.float_())),
AliasTypeNode.dict_("map_int_and_double", PrimitiveTypeNode.int_("map_int_and_double::key"),
PrimitiveTypeNode.float_("map_int_and_double::value")),
),
export_name="SearchParams",
required_modules=("flann",)),
AliasTypeNode.dict_("map_string_and_string",
PrimitiveTypeNode.str_("map_string_and_string::key"),
PrimitiveTypeNode.str_("map_string_and_string::value"),
required_modules=("flann",)),
AliasTypeNode.dict_("map_string_and_int",
PrimitiveTypeNode.str_("map_string_and_int::key"),
PrimitiveTypeNode.int_("map_string_and_int::value"),
required_modules=("flann",)),
AliasTypeNode.dict_("map_string_and_vector_size_t",
PrimitiveTypeNode.str_("map_string_and_vector_size_t::key"),
SequenceTypeNode("map_string_and_vector_size_t::value", PrimitiveTypeNode.int_("size_t")),
required_modules=("flann",)),
AliasTypeNode.dict_("map_string_and_vector_float",
PrimitiveTypeNode.str_("map_string_and_vector_float::key"),
SequenceTypeNode("map_string_and_vector_float::value", PrimitiveTypeNode.float_()),
required_modules=("flann",)),
AliasTypeNode.dict_("map_int_and_double",
PrimitiveTypeNode.int_("map_int_and_double::key"),
PrimitiveTypeNode.float_("map_int_and_double::value"),
required_modules=("flann",)),
# G-API from opencv_contrib
AliasTypeNode.union_("GProtoArg",