opencv_binding_generator/settings/
func_rename.rs

1use std::collections::HashMap;
2
3use crate::SupportedModule;
4
5pub type FuncRename = HashMap<&'static str, &'static str>;
6
7/// map of functions to rename, key is Func.identifier(), value is new name ("+" will be replaced by the old name)
8pub fn func_rename_factory(module: SupportedModule) -> FuncRename {
9	match module {
10		SupportedModule::Aruco => aruco_factory(),
11		SupportedModule::Bioinspired => bioinspired_factory(),
12		SupportedModule::Calib3d | SupportedModule::Calib | SupportedModule::ThreeD => calib3d_factory(),
13		SupportedModule::Core => core_factory(),
14		SupportedModule::Dnn => dnn_factory(),
15		SupportedModule::Features2d | SupportedModule::Features => features2d_factory(),
16		SupportedModule::Hdf => hdf_factory(),
17		SupportedModule::HighGui => highgui_factory(),
18		SupportedModule::ImgCodecs => imgcodecs_factory(),
19		SupportedModule::ImgProc => imgproc_factory(),
20		SupportedModule::LineDescriptor => line_descriptor_factory(),
21		SupportedModule::Ml => ml_factory(),
22		SupportedModule::ObjDetect => objdetect_factory(),
23		SupportedModule::Photo => photo_factory(),
24		SupportedModule::Stitching => stitching_factory(),
25		SupportedModule::SurfaceMatching => surface_matching_factory(),
26		SupportedModule::Text => text_factory(),
27		SupportedModule::VideoIo => videoio_factory(),
28		SupportedModule::VideoStab => videostab_factory(),
29		_ => FuncRename::default(),
30	}
31}
32
33fn aruco_factory() -> HashMap<&'static str, &'static str> {
34	HashMap::from([("cv_aruco_getPredefinedDictionary_int", "+_i32")]) // 3.4
35}
36
37fn bioinspired_factory() -> HashMap<&'static str, &'static str> {
38	HashMap::from([
39		(
40			"cv_bioinspired_Retina_create_Size_const_bool_int_const_bool_const_float_const_float",
41			"+_ext",
42		),
43		("cv_bioinspired_Retina_getMagnoRAW_const__OutputArrayR", "+_to"),
44		("cv_bioinspired_Retina_getParvoRAW_const__OutputArrayR", "+_to"),
45		("cv_bioinspired_Retina_setup_FileStorageR_const_bool", "+_from_storage"),
46		("cv_bioinspired_Retina_setup_String_const_bool", "+_from_file"),
47		("cv_bioinspired_Retina_write_const_FileStorageR", "+_to_storage"),
48		(
49			"cv_bioinspired_TransientAreasSegmentationModule_setup_FileStorageR_const_bool",
50			"+_from_storage",
51		),
52		(
53			"cv_bioinspired_TransientAreasSegmentationModule_setup_String_const_bool",
54			"+_from_file",
55		),
56		(
57			"cv_bioinspired_TransientAreasSegmentationModule_write_const_FileStorageR",
58			"+_to_storage",
59		),
60	])
61}
62
63fn calib3d_factory() -> HashMap<&'static str, &'static str> {
64	HashMap::from([
65		("cv_LMSolver_create_const_PtrLCallbackGR_int_double", "+_ext"),
66		("cv_findEssentialMat_const__InputArrayR_const__InputArrayR_const__InputArrayR_int_double_double_const__OutputArrayR", "+_matrix"),
67		("cv_findFundamentalMat_const__InputArrayR_const__InputArrayR_const__OutputArrayR_int_double_double", "+_mask"),
68		("cv_findHomography_const__InputArrayR_const__InputArrayR_int_double_const__OutputArrayR_const_int_const_double", "+_ext"),
69		("cv_fisheye_initUndistortRectifyMap_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const_SizeR_int_const__OutputArrayR_const__OutputArrayR", "fisheye_+"),
70		("cv_fisheye_projectPoints_const__InputArrayR_const__OutputArrayR_const_Affine3dR_const__InputArrayR_const__InputArrayR_double_const__OutputArrayR", "fisheye_+"),
71		("cv_fisheye_projectPoints_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_double_const__OutputArrayR", "fisheye_+_vec"),
72		("cv_fisheye_stereoCalibrate_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_const__InputOutputArrayR_const__InputOutputArrayR_const__InputOutputArrayR_Size_const__OutputArrayR_const__OutputArrayR_int_TermCriteria", "fisheye_+"),
73		("cv_fisheye_stereoRectify_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const_SizeR_const__InputArrayR_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_const__OutputArrayR_const__OutputArrayR_const__OutputArrayR_int_const_SizeR_double_double", "fisheye_+"),
74		("cv_fisheye_undistortImage_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const_SizeR", "fisheye_+"),
75		("cv_fisheye_undistortPoints_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR", "fisheye_+"),
76		("cv_fisheye_undistortPoints_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_TermCriteria", "fisheye_+"),
77		("cv_fisheye_distortPoints_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR_double", "fisheye_+"),
78		("cv_recoverPose_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_const__InputOutputArrayR", "+_estimated"),
79		("cv_recoverPose_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_double_const__InputOutputArrayR_const__OutputArrayR", "+_triangulated"),
80		("cv_recoverPose_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_const__OutputArrayR_int_double_double_const__InputOutputArrayR", "+_2_cameras"),
81	])
82}
83
84fn core_factory() -> HashMap<&'static str, &'static str> {
85	HashMap::from([
86		(
87			"cv_Algorithm_write_const_const_PtrLFileStorageGR_const_StringR",
88			"+_with_name",
89		),
90		("cv_AsyncArray_get_const_const__OutputArrayR_double", "+_with_timeout_f64"),
91		("cv_AsyncArray_get_const_const__OutputArrayR_int64_t", "+_with_timeout"),
92		("cv_AsyncArray_wait_for_const_double", "+_f64"),
93		("cv_Cholesky_floatX_size_t_int_floatX_size_t_int", "+_f32"),
94		("cv_DMatch_DMatch_int_int_int_float", "new_index"),
95		("cv_FileStorage_write_const_StringR_const_MatR", "+_mat"),
96		("cv_FileStorage_write_const_StringR_const_StringR", "+_str"),
97		("cv_FileStorage_write_const_StringR_const_vectorLStringGR", "+_str_vec"),
98		("cv_FileStorage_write_const_StringR_double", "+_f64"),
99		("cv_FileStorage_write_const_StringR_int", "+_i32"),
100		("cv_KeyPoint_KeyPoint_Point2f_float_float_float_int_int", "+_point"),
101		("cv_KeyPoint_KeyPoint_float_float_float_float_float_int_int", "+_coords"),
102		(
103			"cv_KeyPoint_convert_const_vectorLPoint2fGR_vectorLKeyPointGR_float_float_int_int",
104			"+_to",
105		),
106		("cv_LDA_LDA_const__InputArrayR_const__InputArrayR_int", "+_with_data"),
107		("cv_LU_floatX_size_t_int_floatX_size_t_int", "lu_f32"),
108		("cv_MatConstIterator_MatConstIterator_const_MatX", "over"),
109		("cv_MatConstIterator_MatConstIterator_const_MatX_Point", "with_start"),
110		("cv_MatConstIterator_MatConstIterator_const_MatX_const_intX", "+_slice"),
111		("cv_MatConstIterator_MatConstIterator_const_MatX_int_int", "with_rows_cols"),
112		("cv_MatConstIterator_pos_const_intX", "+_to"),
113		("cv_MatConstIterator_seek_const_intX_bool", "+_idx"),
114		("cv_MatExpr_MatExpr_const_MatR", "from_mat"),
115		("cv_MatExpr_mul_const_const_MatExprR_double", "+_matexpr"),
116		("cv_MatExpr_operator___const_const_RangeR_const_RangeR", "rowscols"),
117		("cv_MatExpr_operator___const_const_RectR", "roi"),
118		("cv_MatExpr_type_const", "typ"),
119		("cv_MatOp_add_const_const_MatExprR_const_ScalarR_MatExprR", "+_scalar"),
120		("cv_MatOp_divide_const_double_const_MatExprR_MatExprR", "+_f64"),
121		("cv_MatOp_multiply_const_const_MatExprR_double_MatExprR", "+_f64"),
122		("cv_MatOp_subtract_const_const_ScalarR_const_MatExprR_MatExprR", "+_scalar"),
123		("cv_Mat_Mat_Size_int", "+_size"),
124		("cv_Mat_Mat_Size_int_const_ScalarR", "+_size_with_default"),
125		("cv_Mat_Mat_Size_int_voidX_size_t", "+_size_with_data_unsafe"),
126		("cv_Mat_Mat_const_GpuMatR", "from_gpumat"),
127		("cv_Mat_Mat_const_MatR_const_RangeR_const_RangeR", "rowscols"),
128		("cv_Mat_Mat_const_MatR_const_RectR", "roi"),
129		("cv_Mat_Mat_const_MatR_const_vectorLRangeGR", "ranges"),
130		("cv_Mat_Mat_const_vectorLintGR_int", "+_nd_vec"),
131		("cv_Mat_Mat_const_vectorLintGR_int_const_ScalarR", "+_nd_vec_with_default"),
132		(
133			"cv_Mat_Mat_const_vectorLintGR_int_voidX_const_size_tX",
134			"+_nd_vec_with_data_unsafe",
135		),
136		("cv_Mat_Mat_int_const_intX_int", "+_nd"),
137		("cv_Mat_Mat_int_const_intX_int_const_ScalarR", "+_nd_with_default"),
138		("cv_Mat_Mat_int_const_intX_int_voidX_const_size_tX", "+_nd_with_data_unsafe"),
139		("cv_Mat_Mat_int_int_int", "+_rows_cols"),
140		("cv_Mat_Mat_int_int_int_const_ScalarR", "+_rows_cols_with_default"),
141		("cv_Mat_Mat_int_int_int_voidX_size_t", "+_rows_cols_with_data_unsafe"),
142		("cv_Mat_colRange_const_int_int", "col_bounds"),
143		("cv_Mat_copyTo_const_const__OutputArrayR_const__InputArrayR", "+_masked"),
144		("cv_Mat_create_Size_int", "+_size"),
145		("cv_Mat_create_const_vectorLintGR_int", "+_nd_vec"),
146		("cv_Mat_create_int_const_intX_int", "+_nd"),
147		("cv_Mat_create_int_int_int", "+_rows_cols"),
148		("cv_Mat_diag_const_MatR", "+_mat"),
149		("cv_Mat_eye_Size_int", "+_size"),
150		("cv_Mat_getUMat_const_AccessFlag_UMatUsageFlags", "get_umat"),
151		("cv_Mat_ones_Size_int", "+_size"),
152		("cv_Mat_ones_int_const_intX_int", "+_nd"),
153		("cv_Mat_operator___const_Range_Range", "rowscols"),
154		("cv_Mat_operator___const_const_RectR", "roi"),
155		("cv_Mat_operator___const_const_vectorLRangeGR", "ranges"),
156		("cv_Mat_ptr_const_const_intX", "+_nd"),
157		("cv_Mat_ptr_const_intX", "+_nd_mut"),
158		("cv_Mat_ptr_const_int_int", "+_2d"),
159		("cv_Mat_ptr_const_int_int_int", "+_3d"),
160		("cv_Mat_ptr_int", "+_mut"),
161		("cv_Mat_ptr_int_int", "+_2d_mut"),
162		("cv_Mat_ptr_int_int_int", "+_3d_mut"),
163		("cv_Mat_reshape_const_int_const_vectorLintGR", "+_nd_vec"),
164		("cv_Mat_reshape_const_int_int_const_intX", "+_nd"),
165		("cv_Mat_resize_size_t_const_ScalarR", "+_with_default"),
166		("cv_Mat_rowRange_const_int_int", "row_bounds"),
167		("cv_Mat_total_const_int_int", "total_slice"),
168		("cv_Mat_type_const", "typ"),
169		("cv_Mat_zeros_Size_int", "+_size"),
170		("cv_Mat_zeros_int_const_intX_int", "+_nd"),
171		(
172			"cv_PCACompute_const__InputArrayR_const__InputOutputArrayR_const__OutputArrayR_const__OutputArrayR_double",
173			"+_variance",
174		),
175		(
176			"cv_PCACompute_const__InputArrayR_const__InputOutputArrayR_const__OutputArrayR_double",
177			"+_variance",
178		),
179		(
180			"cv_PCA_PCA_const__InputArrayR_const__InputArrayR_int_double",
181			"+_with_variance",
182		),
183		("cv_PCA_backProject_const_const__InputArrayR_const__OutputArrayR", "+_to"),
184		("cv_PCA_project_const_const__InputArrayR_const__OutputArrayR", "+_to"),
185		("cv_RNG_MT19937_operator___unsigned_int", "to_u32_with_max"),
186		("cv_RNG_operator___unsigned_int", "+_range"),
187		("cv_RNG_uniform_double_double", "+_f64"),
188		("cv_RNG_uniform_float_float", "+_f32"),
189		("cv_Range_Range_int_int", "new"),
190		(
191			"cv_RotatedRect_RotatedRect_const_Point2fR_const_Point2fR_const_Point2fR",
192			"for_points",
193		),
194		("cv_RotatedRect_points_const_vectorLPoint2fGR", "+_vec"),
195		(
196			"cv_SVD_backSubst_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__OutputArrayR",
197			"+_multi",
198		),
199		(
200			"cv_SVD_compute_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_const__OutputArrayR_int",
201			"+_ext",
202		),
203		("cv_SparseMat_SparseMat_const_MatR", "from_mat"),
204		("cv_SparseMat_begin", "+_mut"),
205		("cv_SparseMat_copyTo_const_MatR", "+_mat"),
206		("cv_SparseMat_end", "+_mut"),
207		("cv_UMat_UMat_Size_int_UMatUsageFlags", "+_size"),
208		("cv_UMat_UMat_Size_int_const_ScalarR_UMatUsageFlags", "+_size_with_default"),
209		("cv_UMat_UMat_const_UMatR_const_RangeR_const_RangeR", "rowscols"),
210		("cv_UMat_UMat_const_UMatR_const_RectR", "roi"),
211		("cv_UMat_UMat_const_UMatR_const_vectorLRangeGR", "ranges"),
212		("cv_UMat_UMat_int_const_intX_int_UMatUsageFlags", "+_nd"),
213		(
214			"cv_UMat_UMat_int_const_intX_int_const_ScalarR_UMatUsageFlags",
215			"+_nd_with_default",
216		),
217		("cv_UMat_UMat_int_int_int_UMatUsageFlags", "+_rows_cols"),
218		(
219			"cv_UMat_UMat_int_int_int_const_ScalarR_UMatUsageFlags",
220			"+_rows_cols_with_default",
221		),
222		("cv_UMat_colRange_const_int_int", "col_bounds"),
223		("cv_UMat_copyTo_const_const__OutputArrayR_const__InputArrayR", "+_masked"),
224		("cv_UMat_create_Size_int_UMatUsageFlags", "+_size"),
225		("cv_UMat_create_const_vectorLintGR_int_UMatUsageFlags", "+_nd_vec"),
226		("cv_UMat_create_int_const_intX_int_UMatUsageFlags", "+_nd"),
227		("cv_UMat_create_int_int_int_UMatUsageFlags", "+_rows_cols"),
228		("cv_UMat_diag_const_UMatR_UMatUsageFlags", "+_flags"),
229		("cv_UMat_eye_Size_int", "+_size"),
230		("cv_UMat_eye_Size_int_UMatUsageFlags", "+_size_flags"),
231		("cv_UMat_eye_int_int_int_UMatUsageFlags", "+_flags"),
232		("cv_UMat_ones_Size_int", "+_size"),
233		("cv_UMat_ones_Size_int_UMatUsageFlags", "+_size_flags"),
234		("cv_UMat_ones_int_const_intX_int", "+_nd"),
235		("cv_UMat_ones_int_const_intX_int_UMatUsageFlags", "+_nd_flags"),
236		("cv_UMat_ones_int_int_int_UMatUsageFlags", "+_flags"),
237		("cv_UMat_operator___const_Range_Range", "rowscols"),
238		("cv_UMat_operator___const_const_RectR", "roi"),
239		("cv_UMat_operator___const_const_vectorLRangeGR", "ranges"),
240		("cv_UMat_reshape_const_int_int_const_intX", "+_nd"),
241		("cv_UMat_rowRange_const_int_int", "row_bounds"),
242		("cv_UMat_type_const", "typ"),
243		("cv_UMat_zeros_Size_int", "+_size"),
244		("cv_UMat_zeros_Size_int_UMatUsageFlags", "+_size_flags"),
245		("cv_UMat_zeros_int_const_intX_int", "+_nd"),
246		("cv_UMat_zeros_int_const_intX_int_UMatUsageFlags", "+_nd_flags"),
247		("cv_UMat_zeros_int_int_int_UMatUsageFlags", "+_flags"),
248		("cv__InputArray__InputArray_const_BufferR", "from_opengl"),
249		("cv__InputArray__InputArray_const_GpuMatR", "from_gpumat"),
250		("cv__InputArray__InputArray_const_HostMemR", "from_hostmem"),
251		("cv__InputArray__InputArray_const_MatExprR", "from_matexpr"),
252		("cv__InputArray__InputArray_const_MatR", "from_mat"),
253		("cv__InputArray__InputArray_const_UMatR", "from_umat"),
254		("cv__InputArray__InputArray_const_doubleR", "from_f64"),
255		("cv__InputArray__InputArray_const_vectorLGpuMatGR", "from_gpumat_vec"),
256		("cv__InputArray__InputArray_const_vectorLMatGR", "from_mat_vec"),
257		("cv__InputArray__InputArray_const_vectorLUMatGR", "from_umat_vec"),
258		("cv__InputArray__InputArray_const_vectorLboolGR", "from_bool_vec"),
259		(
260			"cv__InputArray_copyTo_const_const__OutputArrayR_const__InputArrayR",
261			"+_masked",
262		),
263		("cv__InputOutputArray__InputOutputArray_BufferR", "from_opengl_mut"),
264		("cv__InputOutputArray__InputOutputArray_GpuMatR", "from_gpumat_mut"),
265		("cv__InputOutputArray__InputOutputArray_HostMemR", "from_hostmem_mut"),
266		("cv__InputOutputArray__InputOutputArray_MatR", "from_mat_mut"),
267		("cv__InputOutputArray__InputOutputArray_UMatR", "from_umat_mut"),
268		("cv__InputOutputArray__InputOutputArray_const_BufferR", "from_opengl"),
269		("cv__InputOutputArray__InputOutputArray_const_GpuMatR", "from_gpumat"),
270		("cv__InputOutputArray__InputOutputArray_const_HostMemR", "from_hostmem"),
271		("cv__InputOutputArray__InputOutputArray_const_MatR", "from_mat"),
272		("cv__InputOutputArray__InputOutputArray_const_UMatR", "from_umat"),
273		(
274			"cv__InputOutputArray__InputOutputArray_const_vectorLGpuMatGR",
275			"from_gpumat_vec",
276		),
277		("cv__InputOutputArray__InputOutputArray_const_vectorLMatGR", "from_mat_vec"),
278		("cv__InputOutputArray__InputOutputArray_const_vectorLUMatGR", "from_umat_vec"),
279		("cv__InputOutputArray__InputOutputArray_vectorLMatGR", "from_mat_vec_mut"),
280		("cv__InputOutputArray__InputOutputArray_vectorLUMatGR", "from_umat_vec_mut"),
281		("cv__OutputArray__OutputArray_BufferR", "from_opengl_mut"),
282		("cv__OutputArray__OutputArray_GpuMatR", "from_gpumat_mut"),
283		("cv__OutputArray__OutputArray_HostMemR", "from_hostmem_mut"),
284		("cv__OutputArray__OutputArray_MatR", "from_mat_mut"),
285		("cv__OutputArray__OutputArray_UMatR", "from_umat_mut"),
286		("cv__OutputArray__OutputArray_const_BufferR", "from_opengl"),
287		("cv__OutputArray__OutputArray_const_GpuMatR", "from_gpumat"),
288		("cv__OutputArray__OutputArray_const_HostMemR", "from_hostmem"),
289		("cv__OutputArray__OutputArray_const_MatR", "from_mat"),
290		("cv__OutputArray__OutputArray_const_UMatR", "from_umat"),
291		("cv__OutputArray__OutputArray_const_vectorLMatGR", "from_mat_vec"),
292		("cv__OutputArray__OutputArray_const_vectorLUMatGR", "from_umat_vec"),
293		("cv__OutputArray__OutputArray_vectorLGpuMatGR", "from_gpumat_vec_mut"),
294		("cv__OutputArray__OutputArray_vectorLMatGR", "from_mat_vec_mut"),
295		("cv__OutputArray__OutputArray_vectorLUMatGR", "from_umat_vec_mut"),
296		("cv__OutputArray_assign_const_const_MatR", "+_mat"),
297		("cv__OutputArray_assign_const_const_UMatR", "+_umat"),
298		("cv__OutputArray_assign_const_const_vectorLMatGR", "+_mat_vec"),
299		("cv__OutputArray_assign_const_const_vectorLUMatGR", "+_umat_vec"),
300		("cv__OutputArray_create_const_Size_int_int_bool_DepthMask", "+_size"),
301		("cv__OutputArray_create_const_Size_int_int_bool_int", "+_size"), // 3.4
302		("cv__OutputArray_create_const_int_const_intX_int_int_bool_DepthMask", "+_nd"),
303		("cv__OutputArray_create_const_int_const_intX_int_int_bool_int", "+_nd"), // 3.4
304		("cv__OutputArray_move_const_MatR", "+mat"),
305		("cv__OutputArray_move_const_UMatR", "+umat"),
306		("cv_abs_const_MatExprR", "+_matexpr"),
307		("cv_cuda_GpuMatND_operator___const_IndexArray_Range_Range", "rowscols"),
308		("cv_cuda_GpuMatND_operator___const_const_vectorLRangeGR", "ranges"),
309		("cv_cuda_GpuMat_GpuMat_Size_int_AllocatorX", "+_size"),
310		("cv_cuda_GpuMat_GpuMat_Size_int_Scalar_AllocatorX", "+_size_with_default"),
311		("cv_cuda_GpuMat_GpuMat_Size_int_voidX_size_t", "+_size_with_data"),
312		("cv_cuda_GpuMat_GpuMat_const_GpuMatR_Range_Range", "rowscols"),
313		("cv_cuda_GpuMat_GpuMat_const_GpuMatR_Rect", "roi"),
314		("cv_cuda_GpuMat_GpuMat_const__InputArrayR_AllocatorX", "from_hostmem"),
315		("cv_cuda_GpuMat_GpuMat_int_int_int_AllocatorX", "+_rows_cols"),
316		(
317			"cv_cuda_GpuMat_GpuMat_int_int_int_Scalar_AllocatorX",
318			"+_rows_cols_with_default",
319		),
320		("cv_cuda_GpuMat_GpuMat_int_int_int_voidX_size_t", "+_rows_cols_with_data"),
321		("cv_cuda_GpuMat_colRange_const_int_int", "col_bounds"),
322		("cv_cuda_GpuMat_copyTo_const_GpuMatR", "+_gpu_mat"),
323		("cv_cuda_GpuMat_copyTo_const_GpuMatR_GpuMatR", "+_gpu_mat_mask"),
324		("cv_cuda_GpuMat_copyTo_const_GpuMatR_GpuMatR_StreamR", "+_gpu_mat_mask_stream"),
325		("cv_cuda_GpuMat_copyTo_const_GpuMatR_StreamR", "+_gpu_mat_stream"),
326		("cv_cuda_GpuMat_copyTo_const_const__OutputArrayR_StreamR", "+_stream"),
327		("cv_cuda_GpuMat_copyTo_const_const__OutputArrayR_const__InputArrayR", "+_mask"),
328		(
329			"cv_cuda_GpuMat_copyTo_const_const__OutputArrayR_const__InputArrayR_StreamR",
330			"+_mask_stream",
331		),
332		("cv_cuda_GpuMat_download_const_const__OutputArrayR_StreamR", "+_async"),
333		("cv_cuda_GpuMat_operator___const_Range_Range", "rowscols"),
334		("cv_cuda_GpuMat_operator___const_Rect", "roi"),
335		("cv_cuda_GpuMat_ptr_int", "+_mut"),
336		("cv_cuda_GpuMat_rowRange_const_int_int", "row_bounds"),
337		("cv_cuda_GpuMat_upload_const__InputArrayR_StreamR", "+_async"),
338		("cv_directx_getTypeFromD3DFORMAT_const_int", "get_type_from_d3d_format"),
339		(
340			"cv_divide_const__InputArrayR_const__InputArrayR_const__OutputArrayR_double_int",
341			"+2",
342		),
343		("cv_getNumberOfCPUs", "get_number_of_cpus"),
344		("cv_hconcat_const__InputArrayR_const__InputArrayR_const__OutputArrayR", "+2"),
345		("cv_max_const_MatR_const_MatR", "+_mat"),
346		("cv_max_const_MatR_const_MatR_MatR", "+_mat_to"),
347		("cv_max_const_MatR_double", "+_mat_f64"),
348		("cv_max_const_UMatR_const_UMatR_UMatR", "+_umat_to"),
349		("cv_max_double_const_MatR", "+_f64_mat"),
350		("cv_minMaxLoc_const_SparseMatR_doubleX_doubleX_intX_intX", "+_sparse"),
351		("cv_min_const_MatR_const_MatR", "+_mat"),
352		("cv_min_const_MatR_const_MatR_MatR", "+_mat_to"),
353		("cv_min_const_MatR_double", "+_mat_f64"),
354		("cv_min_const_UMatR_const_UMatR_UMatR", "+_umat_to"),
355		("cv_min_double_const_MatR", "+_f64_mat"),
356		(
357			"cv_mixChannels_const__InputArrayR_const__InputOutputArrayR_const_vectorLintGR",
358			"+_vec",
359		),
360		("cv_norm_const_SparseMatR_int", "+_sparse"),
361		("cv_norm_const__InputArrayR_const__InputArrayR_int_const__InputArrayR", "+2"),
362		("cv_normalize_const_SparseMatR_SparseMatR_double_int", "+_sparse"),
363		("cv_ocl_Context_Context_int", "+_with_type"),
364		("cv_ocl_Context_create_int", "+_with_type"),
365		(
366			"cv_ocl_Kernel_create_const_charX_const_ProgramSourceR_const_StringR_StringX",
367			"+_ext",
368		),
369		("cv_ocl_Kernel_set_int_const_KernelArgR", "+_kernel_arg"),
370		("cv_ocl_Kernel_set_int_const_UMatR", "+_umat"),
371		("cv_ocl_ProgramSource_ProgramSource_const_StringR", "from_str"),
372		("cv_ocl_Program_getPrefix_const_StringR", "+_build_flags"),
373		("cv_ogl_Buffer_create_Size_int_Target_bool", "+_size"),
374		("cv_read_const_FileNodeR_DMatchR_const_DMatchR", "+_dmatch"),
375		("cv_read_const_FileNodeR_KeyPointR_const_KeyPointR", "+_keypoint"),
376		("cv_read_const_FileNodeR_MatR_const_MatR", "+_mat"),
377		("cv_read_const_FileNodeR_SparseMatR_const_SparseMatR", "+_sparsemat"),
378		("cv_read_const_FileNodeR_doubleR_double", "+_f64"),
379		("cv_read_const_FileNodeR_floatR_float", "+_f32"),
380		("cv_read_const_FileNodeR_intR_int", "+_i32"),
381		("cv_read_const_FileNodeR_stringR_const_stringR", "+_str"),
382		("cv_read_const_FileNodeR_vectorLDMatchGR", "+_dmatch_vec_legacy"),
383		("cv_read_const_FileNodeR_vectorLKeyPointGR", "+_keypoint_vec_legacy"),
384		("cv_repeat_const__InputArrayR_int_int_const__OutputArrayR", "+_to"),
385		("cv_split_const_MatR_MatX", "+_slice"),
386		("cv_swap_UMatR_UMatR", "+_umat"),
387		("cv_vconcat_const__InputArrayR_const__InputArrayR_const__OutputArrayR", "+2"),
388		("cv_writeScalar_FileStorageR_const_StringR", "+_str"),
389		("cv_writeScalar_FileStorageR_double", "+_f64"),
390		("cv_writeScalar_FileStorageR_float", "+_f32"),
391		("cv_writeScalar_FileStorageR_int", "+_i32"),
392		("cv_write_FileStorageR_const_StringR_const_MatR", "+_mat"),
393		("cv_write_FileStorageR_const_StringR_const_SparseMatR", "+_sparsemat"),
394		("cv_write_FileStorageR_const_StringR_const_StringR", "+_str"),
395		("cv_write_FileStorageR_const_StringR_const_vectorLDMatchGR", "+_dmatch_vec"),
396		(
397			"cv_write_FileStorageR_const_StringR_const_vectorLKeyPointGR",
398			"+_keypoint_vec",
399		),
400		("cv_write_FileStorageR_const_StringR_double", "+_f64"),
401		("cv_write_FileStorageR_const_StringR_float", "+_f32"),
402		("cv_write_FileStorageR_const_StringR_int", "+_i32"),
403	])
404}
405
406fn dnn_factory() -> HashMap<&'static str, &'static str> {
407	HashMap::from([
408		("cv_dnn_DictValue_DictValue_bool", "from_bool"),
409		("cv_dnn_DictValue_DictValue_const_charX", "from_str"),
410		("cv_dnn_DictValue_DictValue_double", "from_f64"),
411		("cv_dnn_DictValue_DictValue_int", "from_i32"),
412		("cv_dnn_DictValue_DictValue_int64_t", "from_i64"),
413		("cv_dnn_DictValue_DictValue_unsigned_int", "from_u32"),
414		("cv_dnn_Dict_ptr_const_StringR", "+_mut"),
415		("cv_dnn_Layer_finalize_const_vectorLMatGR", "+_mat"),
416		("cv_dnn_Layer_finalize_const_vectorLMatGR_vectorLMatGR", "+_mat_to"),
417		("cv_dnn_Layer_forward_vectorLMatXGR_vectorLMatGR_vectorLMatGR", "+_mat"),
418		(
419			"cv_dnn_NMSBoxes_const_vectorLRect2dGR_const_vectorLfloatGR_const_float_const_float_vectorLintGR_const_float_const_int",
420			"+_f64",
421		),
422		(
423			"cv_dnn_Net_addLayerToPrev_const_StringR_const_StringR_const_intR_LayerParamsR",
424			"+_type",
425		),
426		(
427			"cv_dnn_Net_addLayer_const_StringR_const_StringR_const_intR_LayerParamsR",
428			"+_type",
429		),
430		("cv_dnn_Net_connect_String_String", "+_first_second"),
431		("cv_dnn_Net_forward_const_StringR", "+_single"),
432		("cv_dnn_Net_forward_const__OutputArrayR_const_StringR", "+_layer"),
433		(
434			"cv_dnn_Net_getMemoryConsumption_const_const_int_const_vectorLMatShapeGR_size_tR_size_tR",
435			"+_for_layer",
436		),
437		(
438			"cv_dnn_Net_getMemoryConsumption_const_const_vectorLMatShapeGR_vectorLintGR_vectorLsize_tGR_vectorLsize_tGR",
439			"+_for_layers",
440		),
441		(
442			"cv_dnn_TextDetectionModel_EAST_TextDetectionModel_EAST_const_stringR_const_stringR",
443			"from_file",
444		),
445		(
446			"cv_dnn_TextDetectionModel_detect_const_const__InputArrayR_vectorLvectorLPointGGR_vectorLfloatGR",
447			"+_with_confidences",
448		),
449		(
450			"cv_dnn_TextRecognitionModel_TextRecognitionModel_const_stringR_const_stringR",
451			"from_file",
452		),
453		(
454			"cv_dnn_blobFromImage_const__InputArrayR_const__OutputArrayR_double_const_SizeR_const_ScalarR_bool_bool_int",
455			"+_to",
456		),
457		(
458			"cv_dnn_blobFromImages_const__InputArrayR_const__OutputArrayR_double_Size_const_ScalarR_bool_bool_int",
459			"+_to",
460		),
461		("cv_dnn_readNetFromCaffe_const_charX_size_t_const_charX_size_t", "+_str"),
462		(
463			"cv_dnn_readNetFromCaffe_const_vectorLunsigned_charGR_const_vectorLunsigned_charGR",
464			"+_buffer",
465		),
466		("cv_dnn_readNetFromDarknet_const_charX_size_t_const_charX_size_t", "+_str"),
467		(
468			"cv_dnn_readNetFromDarknet_const_vectorLunsigned_charGR_const_vectorLunsigned_charGR",
469			"+_buffer",
470		),
471		("cv_dnn_readNetFromONNX_const_charX_size_t", "+_str"),
472		("cv_dnn_readNetFromONNX_const_vectorLunsigned_charGR", "+_buffer"),
473		("cv_dnn_readNetFromTensorflow_const_charX_size_t_const_charX_size_t", "+_str"),
474		(
475			"cv_dnn_readNetFromTensorflow_const_vectorLunsigned_charGR_const_vectorLunsigned_charGR",
476			"+_buffer",
477		),
478	])
479}
480
481fn features2d_factory() -> HashMap<&'static str, &'static str> {
482	HashMap::from([
483		("cv_AGAST_const__InputArrayR_vectorLKeyPointGR_int_bool_DetectorType", "+_with_type"),
484		("cv_AGAST_const__InputArrayR_vectorLKeyPointGR_int_bool_int", "+_with_type"), // 3.x only
485		("cv_BOWImgDescriptorExtractor_BOWImgDescriptorExtractor_const_PtrLFeature2DGR_const_PtrLDescriptorMatcherGR", "+_with_extractor"),
486		("cv_BOWImgDescriptorExtractor_compute2_const_MatR_vectorLKeyPointGR_MatR", "compute2"),
487		("cv_BOWImgDescriptorExtractor_compute_const__InputArrayR_vectorLKeyPointGR_const__OutputArrayR_vectorLvectorLintGGX_MatX", "+_desc"),
488		("cv_BOWKMeansTrainer_cluster_const_const_MatR", "+_with_descriptor"),
489		("cv_BOWTrainer_cluster_const_const_MatR", "+_with_descriptors"),
490		("cv_BRISK_create_const_vectorLfloatGR_const_vectorLintGR_float_float_const_vectorLintGR", "+_with_pattern"),
491		("cv_BRISK_create_int_int_const_vectorLfloatGR_const_vectorLintGR_float_float_const_vectorLintGR", "+_with_pattern_threshold_octaves"),
492		("cv_DescriptorMatcher_create_const_MatcherTypeR", "+_with_matcher_type"),
493		("cv_DescriptorMatcher_create_int", "+_with_matcher_type"), // 3.x only
494		("cv_DescriptorMatcher_knnMatch_const_const__InputArrayR_const__InputArrayR_vectorLvectorLDMatchGGR_int_const__InputArrayR_bool", "knn_train_match"),
495		("cv_DescriptorMatcher_match_const_const__InputArrayR_const__InputArrayR_vectorLDMatchGR_const__InputArrayR", "train_match"),
496		("cv_DescriptorMatcher_radiusMatch_const_const__InputArrayR_const__InputArrayR_vectorLvectorLDMatchGGR_float_const__InputArrayR_bool", "radius_train_match"),
497		("cv_DescriptorMatcher_read_const_FileNodeR", "+_from_node"),
498		("cv_DescriptorMatcher_write_const_FileStorageR", "+_to_storage"),
499		("cv_DescriptorMatcher_write_const_FileStorageR_const_StringR", "+_to_storage_with_name"),
500		("cv_DescriptorMatcher_write_const_const_PtrLFileStorageGR_const_StringR", "+_to_storage_ptr_with_name"),
501		("cv_FAST_const__InputArrayR_vectorLKeyPointGR_int_bool_DetectorType", "+_with_type"),
502		("cv_FAST_const__InputArrayR_vectorLKeyPointGR_int_bool_int", "+_with_type"), // 3.x only
503		("cv_Feature2D_compute_const__InputArrayR_vectorLvectorLKeyPointGGR_const__OutputArrayR", "+_multiple"),
504		("cv_Feature2D_detect_const__InputArrayR_vectorLvectorLKeyPointGGR_const__InputArrayR", "+_multiple"),
505		("cv_Feature2D_read_const_FileNodeR", "+_from_node"),
506		("cv_Feature2D_write_const_FileStorageR", "+_to_storage"),
507		("cv_Feature2D_write_const_FileStorageR_const_StringR", "+_to_storage_with_name"),
508		("cv_Feature2D_write_const_const_PtrLFileStorageGR_const_StringR", "+_to_storage_ptr_with_name"),
509		("cv_GFTTDetector_create_int_double_double_int_int_bool_double", "+_with_gradient"),
510		("cv_SIFT_create_int_int_double_double_double_int", "+_with_descriptor_type"),
511		("cv_SIFT_create_int_int_double_double_double_int_bool", "+_with_descriptor_type"),
512		("cv_drawMatches_const__InputArrayR_const_vectorLKeyPointGR_const__InputArrayR_const_vectorLKeyPointGR_const_vectorLDMatchGR_const__InputOutputArrayR_const_int_const_ScalarR_const_ScalarR_const_vectorLcharGR_DrawMatchesFlags", "+_with_thickness"),
513		("cv_drawMatches_const__InputArrayR_const_vectorLKeyPointGR_const__InputArrayR_const_vectorLKeyPointGR_const_vectorLDMatchGR_const__InputOutputArrayR_const_int_const_ScalarR_const_ScalarR_const_vectorLcharGR_int", "+_with_thickness"),
514
515	])
516}
517
518fn hdf_factory() -> HashMap<&'static str, &'static str> {
519	HashMap::from([
520		("cv_hdf_HDF5_atread_StringX_const_StringR", "+_str"),
521		("cv_hdf_HDF5_atread_doubleX_const_StringR", "+_f64"),
522		("cv_hdf_HDF5_atread_intX_const_StringR", "+_i32"),
523		("cv_hdf_HDF5_atwrite_const_StringR_const_StringR", "+_str"),
524		("cv_hdf_HDF5_atwrite_const_double_const_StringR", "+_f64"),
525		("cv_hdf_HDF5_atwrite_const_int_const_StringR", "+_i32"),
526		(
527			"cv_hdf_HDF5_dscreate_const_const_int_const_intX_const_int_const_StringR",
528			"+_nd",
529		),
530		(
531			"cv_hdf_HDF5_dscreate_const_const_int_const_intX_const_int_const_StringR_const_int",
532			"+_nd_compress",
533		),
534		(
535			"cv_hdf_HDF5_dscreate_const_const_int_const_intX_const_int_const_StringR_const_int_const_intX",
536			"+_nd_compress_dims",
537		),
538		(
539			"cv_hdf_HDF5_dscreate_const_const_int_const_int_const_int_const_StringR_const_int",
540			"+_compress",
541		),
542		(
543			"cv_hdf_HDF5_dscreate_const_const_int_const_int_const_int_const_StringR_const_int_const_vectorLintGR",
544			"+_compress_dims",
545		),
546		(
547			"cv_hdf_HDF5_dscreate_const_const_vectorLintGR_const_int_const_StringR_const_int_const_vectorLintGR",
548			"+_nd_vec_compress_dims",
549		),
550		(
551			"cv_hdf_HDF5_dsinsert_const_const__InputArrayR_const_StringR_const_vectorLintGR_const_vectorLintGR",
552			"+_offset",
553		),
554		(
555			"cv_hdf_HDF5_dsread_const_const__OutputArrayR_const_StringR_const_vectorLintGR_const_vectorLintGR",
556			"+_offset",
557		),
558		(
559			"cv_hdf_HDF5_dswrite_const_const__InputArrayR_const_StringR_const_vectorLintGR_const_vectorLintGR",
560			"+_offset",
561		),
562	])
563}
564
565fn highgui_factory() -> HashMap<&'static str, &'static str> {
566	HashMap::from([
567		(
568			"cv_addText_const_MatR_const_StringR_Point_const_StringR_int_Scalar_int_int_int",
569			"+_with_font",
570		),
571		("cv_resizeWindow_const_StringR_const_SizeR", "+_size"),
572		("cv_selectROI_const_StringR_const__InputArrayR_bool_bool", "+_for_window"),
573		(
574			"cv_selectROIs_const_StringR_const__InputArrayR_vectorLRectGR_bool_bool",
575			"select_rois",
576		),
577	])
578}
579
580fn imgcodecs_factory() -> HashMap<&'static str, &'static str> {
581	HashMap::from([
582		("cv_imdecode_const__InputArrayR_int_MatX", "+_to"),
583		("cv_imreadmulti_const_StringR_vectorLMatGR_int_int_int", "+_range"),
584	])
585}
586
587fn imgproc_factory() -> HashMap<&'static str, &'static str> {
588	HashMap::from([
589		("cv_Canny_const__InputArrayR_const__InputArrayR_const__OutputArrayR_double_double_bool", "+_derivative"),
590		("cv_GeneralizedHough_detect_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__OutputArrayR_const__OutputArrayR", "+_with_edges"),
591		("cv_Subdiv2D_insert_const_vectorLPoint2fGR", "+_multiple"),
592		("cv_applyColorMap_const__InputArrayR_const__OutputArrayR_const__InputArrayR", "+_user"),
593		("cv_clipLine_Size2l_Point2lR_Point2lR", "+_size_i64"),
594		("cv_clipLine_Size_PointR_PointR", "clip_line_size"),
595		("cv_ellipse2Poly_Point2d_Size2d_int_int_int_int_vectorLPoint2dGR", "ellipse_2_poly_f64"),
596		("cv_ellipse2Poly_Point_Size_int_int_int_int_vectorLPointGR", "ellipse_2_poly"),
597		("cv_ellipse_const__InputOutputArrayR_const_RotatedRectR_const_ScalarR_int_int", "ellipse_rotated_rect"),
598		("cv_findContours_const__InputArrayR_const__OutputArrayR_const__OutputArrayR_int_int_Point", "+_with_hierarchy"), // 4.x
599		("cv_findContours_const__InputOutputArrayR_const__OutputArrayR_const__OutputArrayR_int_int_Point", "+_with_hierarchy"), // 3.4
600		("cv_floodFill_const__InputOutputArrayR_const__InputOutputArrayR_Point_Scalar_RectX_Scalar_Scalar_int", "+_mask"),
601		("cv_getAffineTransform_const_Point2fXX_const_Point2fXX", "+_slice"),
602		("cv_getPerspectiveTransform_const_Point2fXX_const_Point2fXX", "+_slice"), // 3.4
603		("cv_getPerspectiveTransform_const_Point2fXX_const_Point2fXX_int", "+_slice"), // 4.x
604		("cv_getRotationMatrix2D__Point2f_double_double", "get_rotation_matrix_2d_matx"),
605		("cv_goodFeaturesToTrack_const__InputArrayR_const__OutputArrayR_int_double_double_const__InputArrayR_int_int_bool_double", "+_with_gradient"),
606		("cv_rectangle_const__InputOutputArrayR_Point_Point_const_ScalarR_int_int_int", "+_points"),
607	])
608}
609
610fn line_descriptor_factory() -> HashMap<&'static str, &'static str> {
611	HashMap::from([(
612		"cv_line_descriptor_LSDDetector_detect_const_const_vectorLMatGR_vectorLvectorLKeyLineGGR_int_int_const_vectorLMatGR",
613		"+_multiple",
614	)])
615}
616
617fn ml_factory() -> HashMap<&'static str, &'static str> {
618	HashMap::from([
619		("cv_ml_ParamGrid_ParamGrid_double_double_double", "for_range"),
620		("cv_ml_SVM_trainAuto_const__InputArrayR_int_const__InputArrayR_int_PtrLParamGridG_PtrLParamGridG_PtrLParamGridG_PtrLParamGridG_PtrLParamGridG_PtrLParamGridG_bool", "+_with_data"),
621		("cv_ml_StatModel_train_const_PtrLTrainDataGR_int", "+_with_data"),
622
623	])
624}
625
626fn objdetect_factory() -> HashMap<&'static str, &'static str> {
627	HashMap::from([
628		("cv_BaseCascadeClassifier_detectMultiScale_const__InputArrayR_vectorLRectGR_vectorLintGR_double_int_int_Size_Size", "+_num"),
629		("cv_BaseCascadeClassifier_detectMultiScale_const__InputArrayR_vectorLRectGR_vectorLintGR_vectorLdoubleGR_double_int_int_Size_Size_bool", "+_levels"),
630		("cv_HOGDescriptor_HOGDescriptor_const_StringR", "+_from_file"),
631		("cv_HOGDescriptor_detectMultiScale_const_const__InputArrayR_vectorLRectGR_vectorLdoubleGR_double_Size_Size_double_double_bool", "+_weights"),
632		("cv_HOGDescriptor_detect_const_const_MatR_vectorLPointGR_vectorLdoubleGR_double_Size_Size_const_vectorLPointGR", "+_weights"), // 3.4
633		("cv_HOGDescriptor_detect_const_const__InputArrayR_vectorLPointGR_vectorLdoubleGR_double_Size_Size_const_vectorLPointGR", "+_weights"), // 4.x
634		("cv_HOGDescriptor_setSVMDetector_const__InputArrayR", "+_input_array"),
635		("cv_aruco_getPredefinedDictionary_int", "+_i32"),
636		("cv_groupRectangles_vectorLRectGR_int_double_vectorLintGX_vectorLdoubleGX", "+_levelweights"),
637		("cv_groupRectangles_vectorLRectGR_vectorLintGR_int_double", "+_weights"),
638		("cv_groupRectangles_vectorLRectGR_vectorLintGR_vectorLdoubleGR_int_double", "+_levels"),
639	])
640}
641
642fn photo_factory() -> HashMap<&'static str, &'static str> {
643	HashMap::from([
644		(
645			"cv_AlignMTB_process_const__InputArrayR_vectorLMatGR_const__InputArrayR_const__InputArrayR",
646			"+_with_response",
647		),
648		(
649			"cv_MergeDebevec_process_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR",
650			"+_with_response",
651		),
652		(
653			"cv_MergeMertens_process_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR",
654			"+_with_response",
655		),
656		(
657			"cv_MergeRobertson_process_const__InputArrayR_const__OutputArrayR_const__InputArrayR_const__InputArrayR",
658			"+_with_response",
659		),
660		(
661			"cv_cuda_fastNlMeansDenoisingColored_const__InputArrayR_const__OutputArrayR_float_float_int_int_StreamR",
662			"+_cuda",
663		),
664		(
665			"cv_cuda_fastNlMeansDenoising_const__InputArrayR_const__OutputArrayR_float_int_int_StreamR",
666			"+_cuda",
667		),
668		(
669			"cv_fastNlMeansDenoisingMulti_const__InputArrayR_const__OutputArrayR_int_int_const_vectorLfloatGR_int_int_int",
670			"+_vec",
671		),
672		(
673			"cv_fastNlMeansDenoising_const__InputArrayR_const__OutputArrayR_const_vectorLfloatGR_int_int_int",
674			"+_vec",
675		),
676	])
677}
678
679fn stitching_factory() -> HashMap<&'static str, &'static str> {
680	HashMap::from([
681		(
682			"cv_Stitcher_composePanorama_const__InputArrayR_const__OutputArrayR",
683			"+_images",
684		),
685		(
686			"cv_Stitcher_stitch_const__InputArrayR_const__InputArrayR_const__OutputArrayR",
687			"+_mask",
688		),
689	])
690}
691
692fn surface_matching_factory() -> HashMap<&'static str, &'static str> {
693	HashMap::from([(
694		"cv_ppf_match_3d_ICP_registerModelToScene_const_MatR_const_MatR_vectorLPose3DPtrGR",
695		"+_vec",
696	)])
697}
698
699fn text_factory() -> HashMap<&'static str, &'static str> {
700	HashMap::from([
701		("cv_text_BaseOCR_run_MatR_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_mask"),
702		("cv_text_OCRBeamSearchDecoder_create_const_StringR_const_StringR_const__InputArrayR_const__InputArrayR_decoder_mode_int", "+_from_file"),
703		("cv_text_OCRBeamSearchDecoder_run_MatR_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple_mask"),
704		("cv_text_OCRBeamSearchDecoder_run_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple"),
705		("cv_text_OCRBeamSearchDecoder_run_const__InputArrayR_const__InputArrayR_int_int", "+_mask"),
706		("cv_text_OCRHMMDecoder_create_const_StringR_const_StringR_const__InputArrayR_const__InputArrayR_int_int", "+_from_file"),
707		("cv_text_OCRHMMDecoder_run_MatR_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple_mask"),
708		("cv_text_OCRHMMDecoder_run_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple"),
709		("cv_text_OCRHMMDecoder_run_const__InputArrayR_const__InputArrayR_int_int", "+_mask"),
710		("cv_text_OCRHolisticWordRecognizer_run_MatR_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_mask"),
711		("cv_text_OCRTesseract_run_MatR_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple_mask"),
712		("cv_text_OCRTesseract_run_MatR_stringR_vectorLRectGX_vectorLstringGX_vectorLfloatGX_int", "+_multiple"),
713		("cv_text_OCRTesseract_run_const__InputArrayR_const__InputArrayR_int_int", "+_mask"),
714		("cv_text_TextDetectorCNN_create_const_StringR_const_StringR_vectorLSizeG", "+_with_sizes"),
715		("cv_text_createERFilterNM1_const_StringR_int_float_float_float_bool_float", "+_from_file"),
716		("cv_text_createERFilterNM2_const_StringR_float", "+_from_file"),
717		("cv_text_detectRegions_const__InputArrayR_const_PtrLERFilterGR_const_PtrLERFilterGR_vectorLRectGR_int_const_StringR_float", "+_from_file"),
718
719	])
720}
721
722fn videoio_factory() -> HashMap<&'static str, &'static str> {
723	HashMap::from([
724		("cv_VideoCapture_VideoCapture_const_StringR", "from_file_default"), // 3.4
725		("cv_VideoCapture_VideoCapture_const_StringR_int", "from_file"),
726		(
727			"cv_VideoCapture_VideoCapture_const_StringR_int_const_vectorLintGR",
728			"from_file_with_params",
729		),
730		("cv_VideoCapture_VideoCapture_int", "+_default"), // 3.4
731		("cv_VideoCapture_VideoCapture_int_int_const_vectorLintGR", "+_with_params"),
732		("cv_VideoCapture_open_const_StringR", "+_file_default"), // 3.4
733		("cv_VideoCapture_open_const_StringR_int", "+_file"),
734		(
735			"cv_VideoCapture_open_const_StringR_int_const_vectorLintGR",
736			"+_file_with_params",
737		),
738		("cv_VideoCapture_open_int", "+_default"), // 3.4
739		("cv_VideoCapture_open_int_int_const_vectorLintGR", "+_with_params"),
740		(
741			"cv_VideoWriter_VideoWriter_const_StringR_int_int_double_Size_bool",
742			"+_with_backend",
743		),
744		("cv_VideoWriter_open_const_StringR_int_int_double_Size_bool", "+_with_backend"),
745	])
746}
747
748fn videostab_factory() -> HashMap<&'static str, &'static str> {
749	HashMap::from([(
750		"cv_videostab_KeypointBasedMotionEstimator_estimate_const_MatR_const_MatR_boolX",
751		"+_mat",
752	)])
753}