node-native-win-utils 1.1.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +144 -27
  2. package/binding.gyp +18 -5
  3. package/dist/index.d.ts +146 -4
  4. package/dist/index.js +107 -3
  5. package/include/opencv2/core/affine.hpp +678 -0
  6. package/include/opencv2/core/async.hpp +105 -0
  7. package/include/opencv2/core/base.hpp +664 -0
  8. package/include/opencv2/core/bindings_utils.hpp +325 -0
  9. package/include/opencv2/core/bufferpool.hpp +40 -0
  10. package/include/opencv2/core/check.hpp +170 -0
  11. package/include/opencv2/core/core.hpp +48 -0
  12. package/include/opencv2/core/core_c.h +3128 -0
  13. package/include/opencv2/core/cuda/block.hpp +211 -0
  14. package/include/opencv2/core/cuda/border_interpolate.hpp +722 -0
  15. package/include/opencv2/core/cuda/color.hpp +309 -0
  16. package/include/opencv2/core/cuda/common.hpp +131 -0
  17. package/include/opencv2/core/cuda/datamov_utils.hpp +113 -0
  18. package/include/opencv2/core/cuda/detail/color_detail.hpp +2018 -0
  19. package/include/opencv2/core/cuda/detail/reduce.hpp +365 -0
  20. package/include/opencv2/core/cuda/detail/reduce_key_val.hpp +502 -0
  21. package/include/opencv2/core/cuda/detail/transform_detail.hpp +392 -0
  22. package/include/opencv2/core/cuda/detail/type_traits_detail.hpp +191 -0
  23. package/include/opencv2/core/cuda/detail/vec_distance_detail.hpp +121 -0
  24. package/include/opencv2/core/cuda/dynamic_smem.hpp +88 -0
  25. package/include/opencv2/core/cuda/emulation.hpp +269 -0
  26. package/include/opencv2/core/cuda/filters.hpp +293 -0
  27. package/include/opencv2/core/cuda/funcattrib.hpp +79 -0
  28. package/include/opencv2/core/cuda/functional.hpp +805 -0
  29. package/include/opencv2/core/cuda/limits.hpp +128 -0
  30. package/include/opencv2/core/cuda/reduce.hpp +209 -0
  31. package/include/opencv2/core/cuda/saturate_cast.hpp +292 -0
  32. package/include/opencv2/core/cuda/scan.hpp +258 -0
  33. package/include/opencv2/core/cuda/simd_functions.hpp +869 -0
  34. package/include/opencv2/core/cuda/transform.hpp +75 -0
  35. package/include/opencv2/core/cuda/type_traits.hpp +90 -0
  36. package/include/opencv2/core/cuda/utility.hpp +230 -0
  37. package/include/opencv2/core/cuda/vec_distance.hpp +232 -0
  38. package/include/opencv2/core/cuda/vec_math.hpp +923 -0
  39. package/include/opencv2/core/cuda/vec_traits.hpp +288 -0
  40. package/include/opencv2/core/cuda/warp.hpp +139 -0
  41. package/include/opencv2/core/cuda/warp_reduce.hpp +76 -0
  42. package/include/opencv2/core/cuda/warp_shuffle.hpp +162 -0
  43. package/include/opencv2/core/cuda.hpp +1279 -0
  44. package/include/opencv2/core/cuda.inl.hpp +763 -0
  45. package/include/opencv2/core/cuda_stream_accessor.hpp +86 -0
  46. package/include/opencv2/core/cuda_types.hpp +144 -0
  47. package/include/opencv2/core/cv_cpu_dispatch.h +381 -0
  48. package/include/opencv2/core/cv_cpu_helper.h +550 -0
  49. package/include/opencv2/core/cvdef.h +973 -0
  50. package/include/opencv2/core/cvstd.hpp +190 -0
  51. package/include/opencv2/core/cvstd.inl.hpp +197 -0
  52. package/include/opencv2/core/cvstd_wrapper.hpp +154 -0
  53. package/include/opencv2/core/detail/async_promise.hpp +71 -0
  54. package/include/opencv2/core/detail/dispatch_helper.impl.hpp +49 -0
  55. package/include/opencv2/core/detail/exception_ptr.hpp +27 -0
  56. package/include/opencv2/core/directx.hpp +184 -0
  57. package/include/opencv2/core/dualquaternion.hpp +979 -0
  58. package/include/opencv2/core/dualquaternion.inl.hpp +487 -0
  59. package/include/opencv2/core/eigen.hpp +402 -0
  60. package/include/opencv2/core/fast_math.hpp +433 -0
  61. package/include/opencv2/core/hal/hal.hpp +256 -0
  62. package/include/opencv2/core/hal/interface.h +190 -0
  63. package/include/opencv2/core/hal/intrin.hpp +939 -0
  64. package/include/opencv2/core/hal/intrin_avx.hpp +3177 -0
  65. package/include/opencv2/core/hal/intrin_avx512.hpp +3090 -0
  66. package/include/opencv2/core/hal/intrin_cpp.hpp +3321 -0
  67. package/include/opencv2/core/hal/intrin_forward.hpp +191 -0
  68. package/include/opencv2/core/hal/intrin_lasx.hpp +3236 -0
  69. package/include/opencv2/core/hal/intrin_msa.hpp +1887 -0
  70. package/include/opencv2/core/hal/intrin_neon.hpp +2610 -0
  71. package/include/opencv2/core/hal/intrin_rvv.hpp +3320 -0
  72. package/include/opencv2/core/hal/intrin_rvv071.hpp +2545 -0
  73. package/include/opencv2/core/hal/intrin_rvv_scalable.hpp +2080 -0
  74. package/include/opencv2/core/hal/intrin_sse.hpp +3467 -0
  75. package/include/opencv2/core/hal/intrin_sse_em.hpp +180 -0
  76. package/include/opencv2/core/hal/intrin_vsx.hpp +1608 -0
  77. package/include/opencv2/core/hal/intrin_wasm.hpp +2782 -0
  78. package/include/opencv2/core/hal/msa_macros.h +1558 -0
  79. package/include/opencv2/core/hal/simd_utils.impl.hpp +186 -0
  80. package/include/opencv2/core/llapi/llapi.h +102 -0
  81. package/include/opencv2/core/mat.hpp +3775 -0
  82. package/include/opencv2/core/mat.inl.hpp +3422 -0
  83. package/include/opencv2/core/matx.hpp +1536 -0
  84. package/include/opencv2/core/neon_utils.hpp +128 -0
  85. package/include/opencv2/core/ocl.hpp +917 -0
  86. package/include/opencv2/core/ocl_genbase.hpp +69 -0
  87. package/include/opencv2/core/opencl/ocl_defs.hpp +82 -0
  88. package/include/opencv2/core/opencl/opencl_info.hpp +212 -0
  89. package/include/opencv2/core/opencl/opencl_svm.hpp +81 -0
  90. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clblas.hpp +602 -0
  91. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clfft.hpp +146 -0
  92. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp +371 -0
  93. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp +272 -0
  94. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp +62 -0
  95. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp +42 -0
  96. package/include/opencv2/core/opencl/runtime/opencl_clblas.hpp +53 -0
  97. package/include/opencv2/core/opencl/runtime/opencl_clfft.hpp +53 -0
  98. package/include/opencv2/core/opencl/runtime/opencl_core.hpp +84 -0
  99. package/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp +47 -0
  100. package/include/opencv2/core/opencl/runtime/opencl_gl.hpp +53 -0
  101. package/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp +47 -0
  102. package/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp +48 -0
  103. package/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp +42 -0
  104. package/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp +166 -0
  105. package/include/opencv2/core/opengl.hpp +733 -0
  106. package/include/opencv2/core/openvx/ovx_defs.hpp +48 -0
  107. package/include/opencv2/core/operations.hpp +610 -0
  108. package/include/opencv2/core/optim.hpp +302 -0
  109. package/include/opencv2/core/ovx.hpp +28 -0
  110. package/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +72 -0
  111. package/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +153 -0
  112. package/include/opencv2/core/parallel/parallel_backend.hpp +90 -0
  113. package/include/opencv2/core/persistence.hpp +1350 -0
  114. package/include/opencv2/core/private/cv_cpu_include_simd_declarations.hpp +30 -0
  115. package/include/opencv2/core/private.cuda.hpp +169 -0
  116. package/include/opencv2/core/private.hpp +896 -0
  117. package/include/opencv2/core/quaternion.hpp +1696 -0
  118. package/include/opencv2/core/quaternion.inl.hpp +1063 -0
  119. package/include/opencv2/core/saturate.hpp +180 -0
  120. package/include/opencv2/core/simd_intrinsics.hpp +87 -0
  121. package/include/opencv2/core/softfloat.hpp +514 -0
  122. package/include/opencv2/core/sse_utils.hpp +652 -0
  123. package/include/opencv2/core/traits.hpp +417 -0
  124. package/include/opencv2/core/types.hpp +2457 -0
  125. package/include/opencv2/core/types_c.h +2126 -0
  126. package/include/opencv2/core/utility.hpp +1229 -0
  127. package/include/opencv2/core/utils/allocator_stats.hpp +29 -0
  128. package/include/opencv2/core/utils/allocator_stats.impl.hpp +158 -0
  129. package/include/opencv2/core/utils/buffer_area.private.hpp +136 -0
  130. package/include/opencv2/core/utils/configuration.private.hpp +22 -0
  131. package/include/opencv2/core/utils/filesystem.hpp +82 -0
  132. package/include/opencv2/core/utils/filesystem.private.hpp +66 -0
  133. package/include/opencv2/core/utils/fp_control.private.hpp +29 -0
  134. package/include/opencv2/core/utils/fp_control_utils.hpp +69 -0
  135. package/include/opencv2/core/utils/instrumentation.hpp +125 -0
  136. package/include/opencv2/core/utils/lock.private.hpp +119 -0
  137. package/include/opencv2/core/utils/logger.defines.hpp +42 -0
  138. package/include/opencv2/core/utils/logger.hpp +218 -0
  139. package/include/opencv2/core/utils/logtag.hpp +28 -0
  140. package/include/opencv2/core/utils/plugin_loader.private.hpp +165 -0
  141. package/include/opencv2/core/utils/tls.hpp +235 -0
  142. package/include/opencv2/core/utils/trace.hpp +252 -0
  143. package/include/opencv2/core/utils/trace.private.hpp +421 -0
  144. package/include/opencv2/core/va_intel.hpp +75 -0
  145. package/include/opencv2/core/version.hpp +26 -0
  146. package/include/opencv2/core/vsx_utils.hpp +1047 -0
  147. package/include/opencv2/core.hpp +3365 -0
  148. package/include/opencv2/imgcodecs/imgcodecs.hpp +48 -0
  149. package/include/opencv2/imgcodecs/imgcodecs_c.h +1 -0
  150. package/include/opencv2/imgcodecs/ios.h +59 -0
  151. package/include/opencv2/imgcodecs/legacy/constants_c.h +54 -0
  152. package/include/opencv2/imgcodecs/macosx.h +20 -0
  153. package/include/opencv2/imgcodecs.hpp +407 -0
  154. package/include/opencv2/imgproc/bindings.hpp +34 -0
  155. package/include/opencv2/imgproc/detail/gcgraph.hpp +395 -0
  156. package/include/opencv2/imgproc/hal/hal.hpp +246 -0
  157. package/include/opencv2/imgproc/hal/interface.h +46 -0
  158. package/include/opencv2/imgproc/imgproc.hpp +48 -0
  159. package/include/opencv2/imgproc/imgproc_c.h +1177 -0
  160. package/include/opencv2/imgproc/segmentation.hpp +141 -0
  161. package/include/opencv2/imgproc/types_c.h +659 -0
  162. package/include/opencv2/imgproc.hpp +5035 -0
  163. package/include/opencv2/opencv_modules.hpp +17 -0
  164. package/libs/libjpeg-turbo.lib +0 -0
  165. package/libs/libpng.lib +0 -0
  166. package/libs/opencv_core470.lib +0 -0
  167. package/libs/opencv_imgcodecs470.lib +0 -0
  168. package/libs/opencv_imgproc470.lib +0 -0
  169. package/libs/zlib.lib +0 -0
  170. package/package.json +8 -2
  171. package/prebuilds/win32-x64/node.napi.node +0 -0
  172. package/src/cpp/capturewindow.cpp +37 -47
  173. package/src/cpp/main.cpp +10 -2
  174. package/src/cpp/opencv.cpp +425 -0
@@ -0,0 +1,325 @@
1
+ // This file is part of OpenCV project.
2
+ // It is subject to the license terms in the LICENSE file found in the top-level directory
3
+ // of this distribution and at http://opencv.org/license.html.
4
+
5
+ #ifndef OPENCV_CORE_BINDINGS_UTILS_HPP
6
+ #define OPENCV_CORE_BINDINGS_UTILS_HPP
7
+
8
+ #include <opencv2/core/async.hpp>
9
+ #include <opencv2/core/detail/async_promise.hpp>
10
+ #include <opencv2/core/utils/logger.hpp>
11
+
12
+ #include <stdexcept>
13
+
14
+ namespace cv { namespace utils {
15
+ //! @addtogroup core_utils
16
+ //! @{
17
+
18
+ CV_EXPORTS_W String dumpInputArray(InputArray argument);
19
+
20
+ CV_EXPORTS_W String dumpInputArrayOfArrays(InputArrayOfArrays argument);
21
+
22
+ CV_EXPORTS_W String dumpInputOutputArray(InputOutputArray argument);
23
+
24
+ CV_EXPORTS_W String dumpInputOutputArrayOfArrays(InputOutputArrayOfArrays argument);
25
+
26
+ CV_WRAP static inline
27
+ String dumpBool(bool argument)
28
+ {
29
+ return (argument) ? String("Bool: True") : String("Bool: False");
30
+ }
31
+
32
+ CV_WRAP static inline
33
+ String dumpInt(int argument)
34
+ {
35
+ return cv::format("Int: %d", argument);
36
+ }
37
+
38
+ CV_WRAP static inline
39
+ String dumpInt64(int64 argument)
40
+ {
41
+ std::ostringstream oss("Int64: ", std::ios::ate);
42
+ oss << argument;
43
+ return oss.str();
44
+ }
45
+
46
+ CV_WRAP static inline
47
+ String dumpSizeT(size_t argument)
48
+ {
49
+ std::ostringstream oss("size_t: ", std::ios::ate);
50
+ oss << argument;
51
+ return oss.str();
52
+ }
53
+
54
+ CV_WRAP static inline
55
+ String dumpFloat(float argument)
56
+ {
57
+ return cv::format("Float: %.2f", argument);
58
+ }
59
+
60
+ CV_WRAP static inline
61
+ String dumpDouble(double argument)
62
+ {
63
+ return cv::format("Double: %.2f", argument);
64
+ }
65
+
66
+ CV_WRAP static inline
67
+ String dumpCString(const char* argument)
68
+ {
69
+ return cv::format("String: %s", argument);
70
+ }
71
+
72
+ CV_WRAP static inline
73
+ String dumpString(const String& argument)
74
+ {
75
+ return cv::format("String: %s", argument.c_str());
76
+ }
77
+
78
+ CV_WRAP static inline
79
+ String testOverloadResolution(int value, const Point& point = Point(42, 24))
80
+ {
81
+ return format("overload (int=%d, point=(x=%d, y=%d))", value, point.x,
82
+ point.y);
83
+ }
84
+
85
+ CV_WRAP static inline
86
+ String testOverloadResolution(const Rect& rect)
87
+ {
88
+ return format("overload (rect=(x=%d, y=%d, w=%d, h=%d))", rect.x, rect.y,
89
+ rect.width, rect.height);
90
+ }
91
+
92
+ CV_WRAP static inline
93
+ String dumpRect(const Rect& argument)
94
+ {
95
+ return format("rect: (x=%d, y=%d, w=%d, h=%d)", argument.x, argument.y,
96
+ argument.width, argument.height);
97
+ }
98
+
99
+ CV_WRAP static inline
100
+ String dumpTermCriteria(const TermCriteria& argument)
101
+ {
102
+ return format("term_criteria: (type=%d, max_count=%d, epsilon=%lf",
103
+ argument.type, argument.maxCount, argument.epsilon);
104
+ }
105
+
106
+ CV_WRAP static inline
107
+ String dumpRotatedRect(const RotatedRect& argument)
108
+ {
109
+ return format("rotated_rect: (c_x=%f, c_y=%f, w=%f, h=%f, a=%f)",
110
+ argument.center.x, argument.center.y, argument.size.width,
111
+ argument.size.height, argument.angle);
112
+ }
113
+
114
+ CV_WRAP static inline
115
+ RotatedRect testRotatedRect(float x, float y, float w, float h, float angle)
116
+ {
117
+ return RotatedRect(Point2f(x, y), Size2f(w, h), angle);
118
+ }
119
+
120
+ CV_WRAP static inline
121
+ std::vector<RotatedRect> testRotatedRectVector(float x, float y, float w, float h, float angle)
122
+ {
123
+ std::vector<RotatedRect> result;
124
+ for (int i = 0; i < 10; i++)
125
+ result.push_back(RotatedRect(Point2f(x + i, y + 2 * i), Size2f(w, h), angle + 10 * i));
126
+ return result;
127
+ }
128
+
129
+ CV_WRAP static inline
130
+ String dumpRange(const Range& argument)
131
+ {
132
+ if (argument == Range::all())
133
+ {
134
+ return "range: all";
135
+ }
136
+ else
137
+ {
138
+ return format("range: (s=%d, e=%d)", argument.start, argument.end);
139
+ }
140
+ }
141
+
142
+ CV_WRAP static inline
143
+ int testOverwriteNativeMethod(int argument)
144
+ {
145
+ return argument;
146
+ }
147
+
148
+ CV_WRAP static inline
149
+ String testReservedKeywordConversion(int positional_argument, int lambda = 2, int from = 3)
150
+ {
151
+ return format("arg=%d, lambda=%d, from=%d", positional_argument, lambda, from);
152
+ }
153
+
154
+ CV_EXPORTS_W String dumpVectorOfInt(const std::vector<int>& vec);
155
+
156
+ CV_EXPORTS_W String dumpVectorOfDouble(const std::vector<double>& vec);
157
+
158
+ CV_EXPORTS_W String dumpVectorOfRect(const std::vector<Rect>& vec);
159
+
160
+ CV_WRAP static inline
161
+ void generateVectorOfRect(size_t len, CV_OUT std::vector<Rect>& vec)
162
+ {
163
+ vec.resize(len);
164
+ if (len > 0)
165
+ {
166
+ RNG rng(12345);
167
+ Mat tmp(static_cast<int>(len), 1, CV_32SC4);
168
+ rng.fill(tmp, RNG::UNIFORM, 10, 20);
169
+ tmp.copyTo(vec);
170
+ }
171
+ }
172
+
173
+ CV_WRAP static inline
174
+ void generateVectorOfInt(size_t len, CV_OUT std::vector<int>& vec)
175
+ {
176
+ vec.resize(len);
177
+ if (len > 0)
178
+ {
179
+ RNG rng(554433);
180
+ Mat tmp(static_cast<int>(len), 1, CV_32SC1);
181
+ rng.fill(tmp, RNG::UNIFORM, -10, 10);
182
+ tmp.copyTo(vec);
183
+ }
184
+ }
185
+
186
+ CV_WRAP static inline
187
+ void generateVectorOfMat(size_t len, int rows, int cols, int dtype, CV_OUT std::vector<Mat>& vec)
188
+ {
189
+ vec.resize(len);
190
+ if (len > 0)
191
+ {
192
+ RNG rng(65431);
193
+ for (size_t i = 0; i < len; ++i)
194
+ {
195
+ vec[i].create(rows, cols, dtype);
196
+ rng.fill(vec[i], RNG::UNIFORM, 0, 10);
197
+ }
198
+ }
199
+ }
200
+
201
+ CV_WRAP static inline
202
+ void testRaiseGeneralException()
203
+ {
204
+ throw std::runtime_error("exception text");
205
+ }
206
+
207
+ CV_WRAP static inline
208
+ AsyncArray testAsyncArray(InputArray argument)
209
+ {
210
+ AsyncPromise p;
211
+ p.setValue(argument);
212
+ return p.getArrayResult();
213
+ }
214
+
215
+ CV_WRAP static inline
216
+ AsyncArray testAsyncException()
217
+ {
218
+ AsyncPromise p;
219
+ try
220
+ {
221
+ CV_Error(Error::StsOk, "Test: Generated async error");
222
+ }
223
+ catch (const cv::Exception& e)
224
+ {
225
+ p.setException(e);
226
+ }
227
+ return p.getArrayResult();
228
+ }
229
+
230
+ CV_WRAP static inline
231
+ String dumpVec2i(const cv::Vec2i value = cv::Vec2i(42, 24)) {
232
+ return format("Vec2i(%d, %d)", value[0], value[1]);
233
+ }
234
+
235
+ struct CV_EXPORTS_W_SIMPLE ClassWithKeywordProperties {
236
+ CV_PROP_RW int lambda;
237
+ CV_PROP int except;
238
+
239
+ CV_WRAP explicit ClassWithKeywordProperties(int lambda_arg = 24, int except_arg = 42)
240
+ {
241
+ lambda = lambda_arg;
242
+ except = except_arg;
243
+ }
244
+ };
245
+
246
+ namespace nested {
247
+ CV_WRAP static inline bool testEchoBooleanFunction(bool flag) {
248
+ return flag;
249
+ }
250
+
251
+ class CV_EXPORTS_W CV_WRAP_AS(ExportClassName) OriginalClassName
252
+ {
253
+ public:
254
+ struct CV_EXPORTS_W_SIMPLE Params
255
+ {
256
+ CV_PROP_RW int int_value;
257
+ CV_PROP_RW float float_value;
258
+
259
+ CV_WRAP explicit Params(int int_param = 123, float float_param = 3.5f)
260
+ {
261
+ int_value = int_param;
262
+ float_value = float_param;
263
+ }
264
+ };
265
+
266
+ explicit OriginalClassName(const OriginalClassName::Params& params = OriginalClassName::Params())
267
+ {
268
+ params_ = params;
269
+ }
270
+
271
+ CV_WRAP int getIntParam() const
272
+ {
273
+ return params_.int_value;
274
+ }
275
+
276
+ CV_WRAP float getFloatParam() const
277
+ {
278
+ return params_.float_value;
279
+ }
280
+
281
+ CV_WRAP static std::string originalName()
282
+ {
283
+ return "OriginalClassName";
284
+ }
285
+
286
+ CV_WRAP static Ptr<OriginalClassName>
287
+ create(const OriginalClassName::Params& params = OriginalClassName::Params())
288
+ {
289
+ return makePtr<OriginalClassName>(params);
290
+ }
291
+
292
+ private:
293
+ OriginalClassName::Params params_;
294
+ };
295
+
296
+ typedef OriginalClassName::Params OriginalClassName_Params;
297
+ } // namespace nested
298
+
299
+ namespace fs {
300
+ CV_EXPORTS_W cv::String getCacheDirectoryForDownloads();
301
+ } // namespace fs
302
+
303
+ //! @} // core_utils
304
+ } // namespace cv::utils
305
+
306
+ //! @cond IGNORED
307
+
308
+ CV_WRAP static inline
309
+ int setLogLevel(int level)
310
+ {
311
+ // NB: Binding generators doesn't work with enums properly yet, so we define separate overload here
312
+ return cv::utils::logging::setLogLevel((cv::utils::logging::LogLevel)level);
313
+ }
314
+
315
+ CV_WRAP static inline
316
+ int getLogLevel()
317
+ {
318
+ return cv::utils::logging::getLogLevel();
319
+ }
320
+
321
+ //! @endcond IGNORED
322
+
323
+ } // namespaces cv / utils
324
+
325
+ #endif // OPENCV_CORE_BINDINGS_UTILS_HPP
@@ -0,0 +1,40 @@
1
+ // This file is part of OpenCV project.
2
+ // It is subject to the license terms in the LICENSE file found in the top-level directory
3
+ // of this distribution and at http://opencv.org/license.html.
4
+ //
5
+ // Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved.
6
+
7
+ #ifndef OPENCV_CORE_BUFFER_POOL_HPP
8
+ #define OPENCV_CORE_BUFFER_POOL_HPP
9
+
10
+ #ifdef _MSC_VER
11
+ #pragma warning(push)
12
+ #pragma warning(disable: 4265)
13
+ #endif
14
+
15
+ namespace cv
16
+ {
17
+
18
+ //! @addtogroup core
19
+ //! @{
20
+
21
+ class BufferPoolController
22
+ {
23
+ protected:
24
+ ~BufferPoolController() { }
25
+ public:
26
+ virtual size_t getReservedSize() const = 0;
27
+ virtual size_t getMaxReservedSize() const = 0;
28
+ virtual void setMaxReservedSize(size_t size) = 0;
29
+ virtual void freeAllReservedBuffers() = 0;
30
+ };
31
+
32
+ //! @}
33
+
34
+ }
35
+
36
+ #ifdef _MSC_VER
37
+ #pragma warning(pop)
38
+ #endif
39
+
40
+ #endif // OPENCV_CORE_BUFFER_POOL_HPP
@@ -0,0 +1,170 @@
1
+ // This file is part of OpenCV project.
2
+ // It is subject to the license terms in the LICENSE file found in the top-level directory
3
+ // of this distribution and at http://opencv.org/license.html.
4
+
5
+ #ifndef OPENCV_CORE_CHECK_HPP
6
+ #define OPENCV_CORE_CHECK_HPP
7
+
8
+ #include <opencv2/core/base.hpp>
9
+
10
+ namespace cv {
11
+
12
+ /** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or "<invalid depth>" */
13
+ CV_EXPORTS const char* depthToString(int depth);
14
+
15
+ /** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or "<invalid type>" */
16
+ CV_EXPORTS String typeToString(int type);
17
+
18
+
19
+ //! @cond IGNORED
20
+ namespace detail {
21
+
22
+ /** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or NULL */
23
+ CV_EXPORTS const char* depthToString_(int depth);
24
+
25
+ /** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or cv::String() */
26
+ CV_EXPORTS cv::String typeToString_(int type);
27
+
28
+ enum TestOp {
29
+ TEST_CUSTOM = 0,
30
+ TEST_EQ = 1,
31
+ TEST_NE = 2,
32
+ TEST_LE = 3,
33
+ TEST_LT = 4,
34
+ TEST_GE = 5,
35
+ TEST_GT = 6,
36
+ CV__LAST_TEST_OP
37
+ };
38
+
39
+ struct CheckContext {
40
+ const char* func;
41
+ const char* file;
42
+ int line;
43
+ enum TestOp testOp;
44
+ const char* message;
45
+ const char* p1_str;
46
+ const char* p2_str;
47
+ };
48
+
49
+ #ifndef CV__CHECK_FILENAME
50
+ # define CV__CHECK_FILENAME __FILE__
51
+ #endif
52
+
53
+ #ifndef CV__CHECK_FUNCTION
54
+ # if defined _MSC_VER
55
+ # define CV__CHECK_FUNCTION __FUNCSIG__
56
+ # elif defined __GNUC__
57
+ # define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
58
+ # else
59
+ # define CV__CHECK_FUNCTION "<unknown>"
60
+ # endif
61
+ #endif
62
+
63
+ #define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
64
+ #define CV__DEFINE_CHECK_CONTEXT(id, message, testOp, p1_str, p2_str) \
65
+ static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
66
+ { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, "" message, "" p1_str, "" p2_str }
67
+
68
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const bool v1, const bool v2, const CheckContext& ctx);
69
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const int v1, const int v2, const CheckContext& ctx);
70
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v1, const size_t v2, const CheckContext& ctx);
71
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const float v1, const float v2, const CheckContext& ctx);
72
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const double v1, const double v2, const CheckContext& ctx);
73
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const Size_<int> v1, const Size_<int> v2, const CheckContext& ctx);
74
+ CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v1, const int v2, const CheckContext& ctx);
75
+ CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v1, const int v2, const CheckContext& ctx);
76
+ CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v1, const int v2, const CheckContext& ctx);
77
+
78
+ CV_EXPORTS void CV_NORETURN check_failed_true(const bool v, const CheckContext& ctx);
79
+ CV_EXPORTS void CV_NORETURN check_failed_false(const bool v, const CheckContext& ctx);
80
+
81
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const int v, const CheckContext& ctx);
82
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v, const CheckContext& ctx);
83
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const float v, const CheckContext& ctx);
84
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const double v, const CheckContext& ctx);
85
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const Size_<int> v, const CheckContext& ctx);
86
+ CV_EXPORTS void CV_NORETURN check_failed_auto(const std::string& v1, const CheckContext& ctx);
87
+ CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v, const CheckContext& ctx);
88
+ CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v, const CheckContext& ctx);
89
+ CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v, const CheckContext& ctx);
90
+
91
+
92
+ #define CV__TEST_EQ(v1, v2) ((v1) == (v2))
93
+ #define CV__TEST_NE(v1, v2) ((v1) != (v2))
94
+ #define CV__TEST_LE(v1, v2) ((v1) <= (v2))
95
+ #define CV__TEST_LT(v1, v2) ((v1) < (v2))
96
+ #define CV__TEST_GE(v1, v2) ((v1) >= (v2))
97
+ #define CV__TEST_GT(v1, v2) ((v1) > (v2))
98
+
99
+ #define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
100
+ if(CV__TEST_##op((v1), (v2))) ; else { \
101
+ CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
102
+ cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
103
+ } \
104
+ } while (0)
105
+
106
+ #define CV__CHECK_CUSTOM_TEST(id, type, v, test_expr, v_str, test_expr_str, msg_str) do { \
107
+ if(!!(test_expr)) ; else { \
108
+ CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_CUSTOM, v_str, test_expr_str); \
109
+ cv::detail::check_failed_ ## type((v), CV__CHECK_LOCATION_VARNAME(id)); \
110
+ } \
111
+ } while (0)
112
+
113
+ } // namespace
114
+ //! @endcond
115
+
116
+
117
+ /// Supported values of these types: int, float, double
118
+ #define CV_CheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
119
+ #define CV_CheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg)
120
+ #define CV_CheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg)
121
+ #define CV_CheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg)
122
+ #define CV_CheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg)
123
+ #define CV_CheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
124
+
125
+ /// Check with additional "decoding" of type values in error message
126
+ #define CV_CheckTypeEQ(t1, t2, msg) CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
127
+ /// Check with additional "decoding" of depth values in error message
128
+ #define CV_CheckDepthEQ(d1, d2, msg) CV__CHECK(_, EQ, MatDepth, d1, d2, #d1, #d2, msg)
129
+
130
+ #define CV_CheckChannelsEQ(c1, c2, msg) CV__CHECK(_, EQ, MatChannels, c1, c2, #c1, #c2, msg)
131
+
132
+ /// Example: type == CV_8UC1 || type == CV_8UC3
133
+ #define CV_CheckType(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatType, t, (test_expr), #t, #test_expr, msg)
134
+
135
+ /// Example: depth == CV_32F || depth == CV_64F
136
+ #define CV_CheckDepth(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatDepth, t, (test_expr), #t, #test_expr, msg)
137
+
138
+ /// Example: v == A || v == B
139
+ #define CV_Check(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg)
140
+
141
+ /// Example: v == true
142
+ #define CV_CheckTrue(v, msg) CV__CHECK_CUSTOM_TEST(_, true, v, v, #v, "", msg)
143
+
144
+ /// Example: v == false
145
+ #define CV_CheckFalse(v, msg) CV__CHECK_CUSTOM_TEST(_, false, v, (!(v)), #v, "", msg)
146
+
147
+ /// Some complex conditions: CV_Check(src2, src2.empty() || (src2.type() == src1.type() && src2.size() == src1.size()), "src2 should have same size/type as src1")
148
+ // TODO define pretty-printers
149
+
150
+ #ifndef NDEBUG
151
+ #define CV_DbgCheck(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg)
152
+ #define CV_DbgCheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
153
+ #define CV_DbgCheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg)
154
+ #define CV_DbgCheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg)
155
+ #define CV_DbgCheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg)
156
+ #define CV_DbgCheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg)
157
+ #define CV_DbgCheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
158
+ #else
159
+ #define CV_DbgCheck(v, test_expr, msg) do { } while (0)
160
+ #define CV_DbgCheckEQ(v1, v2, msg) do { } while (0)
161
+ #define CV_DbgCheckNE(v1, v2, msg) do { } while (0)
162
+ #define CV_DbgCheckLE(v1, v2, msg) do { } while (0)
163
+ #define CV_DbgCheckLT(v1, v2, msg) do { } while (0)
164
+ #define CV_DbgCheckGE(v1, v2, msg) do { } while (0)
165
+ #define CV_DbgCheckGT(v1, v2, msg) do { } while (0)
166
+ #endif
167
+
168
+ } // namespace
169
+
170
+ #endif // OPENCV_CORE_CHECK_HPP
@@ -0,0 +1,48 @@
1
+ /*M///////////////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4
+ //
5
+ // By downloading, copying, installing or using the software you agree to this license.
6
+ // If you do not agree to this license, do not download, install,
7
+ // copy or use the software.
8
+ //
9
+ //
10
+ // License Agreement
11
+ // For Open Source Computer Vision Library
12
+ //
13
+ // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14
+ // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15
+ // Copyright (C) 2013, OpenCV Foundation, all rights reserved.
16
+ // Third party copyrights are property of their respective owners.
17
+ //
18
+ // Redistribution and use in source and binary forms, with or without modification,
19
+ // are permitted provided that the following conditions are met:
20
+ //
21
+ // * Redistribution's of source code must retain the above copyright notice,
22
+ // this list of conditions and the following disclaimer.
23
+ //
24
+ // * Redistribution's in binary form must reproduce the above copyright notice,
25
+ // this list of conditions and the following disclaimer in the documentation
26
+ // and/or other materials provided with the distribution.
27
+ //
28
+ // * The name of the copyright holders may not be used to endorse or promote products
29
+ // derived from this software without specific prior written permission.
30
+ //
31
+ // This software is provided by the copyright holders and contributors "as is" and
32
+ // any express or implied warranties, including, but not limited to, the implied
33
+ // warranties of merchantability and fitness for a particular purpose are disclaimed.
34
+ // In no event shall the Intel Corporation or contributors be liable for any direct,
35
+ // indirect, incidental, special, exemplary, or consequential damages
36
+ // (including, but not limited to, procurement of substitute goods or services;
37
+ // loss of use, data, or profits; or business interruption) however caused
38
+ // and on any theory of liability, whether in contract, strict liability,
39
+ // or tort (including negligence or otherwise) arising in any way out of
40
+ // the use of this software, even if advised of the possibility of such damage.
41
+ //
42
+ //M*/
43
+
44
+ #ifdef __OPENCV_BUILD
45
+ #error this is a compatibility header which should not be used inside the OpenCV library
46
+ #endif
47
+
48
+ #include "opencv2/core.hpp"