@techstark/opencv-js 4.8.0-release.7 → 4.8.0-release.8

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 (197) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.js +18 -0
  3. package/dist/src/index.js.map +1 -0
  4. package/dist/src/types/_cv.d.ts +7 -0
  5. package/dist/src/types/_cv.js +3 -0
  6. package/dist/src/types/_cv.js.map +1 -0
  7. package/dist/src/types/emscripten.d.ts +166 -0
  8. package/dist/src/types/emscripten.js +4 -0
  9. package/dist/src/types/emscripten.js.map +1 -0
  10. package/dist/src/types/opencv/Affine3.d.ts +183 -0
  11. package/dist/src/types/opencv/Affine3.js +3 -0
  12. package/dist/src/types/opencv/Affine3.js.map +1 -0
  13. package/dist/src/types/opencv/Algorithm.d.ts +105 -0
  14. package/dist/src/types/opencv/Algorithm.js +4 -0
  15. package/dist/src/types/opencv/Algorithm.js.map +1 -0
  16. package/dist/src/types/opencv/AutoBuffer.d.ts +41 -0
  17. package/dist/src/types/opencv/AutoBuffer.js +3 -0
  18. package/dist/src/types/opencv/AutoBuffer.js.map +1 -0
  19. package/dist/src/types/opencv/BFMatcher.d.ts +33 -0
  20. package/dist/src/types/opencv/BFMatcher.js +3 -0
  21. package/dist/src/types/opencv/BFMatcher.js.map +1 -0
  22. package/dist/src/types/opencv/BOWTrainer.d.ts +36 -0
  23. package/dist/src/types/opencv/BOWTrainer.js +3 -0
  24. package/dist/src/types/opencv/BOWTrainer.js.map +1 -0
  25. package/dist/src/types/opencv/CascadeClassifier.d.ts +100 -0
  26. package/dist/src/types/opencv/CascadeClassifier.js +4 -0
  27. package/dist/src/types/opencv/CascadeClassifier.js.map +1 -0
  28. package/dist/src/types/opencv/DescriptorMatcher.d.ts +172 -0
  29. package/dist/src/types/opencv/DescriptorMatcher.js +3 -0
  30. package/dist/src/types/opencv/DescriptorMatcher.js.map +1 -0
  31. package/dist/src/types/opencv/DynamicBitset.d.ts +57 -0
  32. package/dist/src/types/opencv/DynamicBitset.js +3 -0
  33. package/dist/src/types/opencv/DynamicBitset.js.map +1 -0
  34. package/dist/src/types/opencv/Exception.d.ts +38 -0
  35. package/dist/src/types/opencv/Exception.js +3 -0
  36. package/dist/src/types/opencv/Exception.js.map +1 -0
  37. package/dist/src/types/opencv/Feature2D.d.ts +14 -0
  38. package/dist/src/types/opencv/Feature2D.js +4 -0
  39. package/dist/src/types/opencv/Feature2D.js.map +1 -0
  40. package/dist/src/types/opencv/FlannBasedMatcher.d.ts +41 -0
  41. package/dist/src/types/opencv/FlannBasedMatcher.js +3 -0
  42. package/dist/src/types/opencv/FlannBasedMatcher.js.map +1 -0
  43. package/dist/src/types/opencv/HOGDescriptor.d.ts +265 -0
  44. package/dist/src/types/opencv/HOGDescriptor.js +3 -0
  45. package/dist/src/types/opencv/HOGDescriptor.js.map +1 -0
  46. package/dist/src/types/opencv/Logger.d.ts +27 -0
  47. package/dist/src/types/opencv/Logger.js +3 -0
  48. package/dist/src/types/opencv/Logger.js.map +1 -0
  49. package/dist/src/types/opencv/LshTable.d.ts +67 -0
  50. package/dist/src/types/opencv/LshTable.js +3 -0
  51. package/dist/src/types/opencv/LshTable.js.map +1 -0
  52. package/dist/src/types/opencv/Mat.d.ts +1589 -0
  53. package/dist/src/types/opencv/Mat.js +3 -0
  54. package/dist/src/types/opencv/Mat.js.map +1 -0
  55. package/dist/src/types/opencv/MatExpr.d.ts +78 -0
  56. package/dist/src/types/opencv/MatExpr.js +4 -0
  57. package/dist/src/types/opencv/MatExpr.js.map +1 -0
  58. package/dist/src/types/opencv/MatOp.d.ts +29 -0
  59. package/dist/src/types/opencv/MatOp.js +3 -0
  60. package/dist/src/types/opencv/MatOp.js.map +1 -0
  61. package/dist/src/types/opencv/Matx.d.ts +84 -0
  62. package/dist/src/types/opencv/Matx.js +3 -0
  63. package/dist/src/types/opencv/Matx.js.map +1 -0
  64. package/dist/src/types/opencv/Node.d.ts +25 -0
  65. package/dist/src/types/opencv/Node.js +3 -0
  66. package/dist/src/types/opencv/Node.js.map +1 -0
  67. package/dist/src/types/opencv/ORB.d.ts +11 -0
  68. package/dist/src/types/opencv/ORB.js +4 -0
  69. package/dist/src/types/opencv/ORB.js.map +1 -0
  70. package/dist/src/types/opencv/PCA.d.ts +170 -0
  71. package/dist/src/types/opencv/PCA.js +3 -0
  72. package/dist/src/types/opencv/PCA.js.map +1 -0
  73. package/dist/src/types/opencv/RotatedRect.d.ts +63 -0
  74. package/dist/src/types/opencv/RotatedRect.js +3 -0
  75. package/dist/src/types/opencv/RotatedRect.js.map +1 -0
  76. package/dist/src/types/opencv/_hacks.d.ts +267 -0
  77. package/dist/src/types/opencv/_hacks.js +15 -0
  78. package/dist/src/types/opencv/_hacks.js.map +1 -0
  79. package/dist/src/types/opencv/_types.d.ts +44 -0
  80. package/dist/src/types/opencv/_types.js +61 -0
  81. package/dist/src/types/opencv/_types.js.map +1 -0
  82. package/dist/src/types/opencv/calib3d.d.ts +2180 -0
  83. package/dist/src/types/opencv/calib3d.js +3 -0
  84. package/dist/src/types/opencv/calib3d.js.map +1 -0
  85. package/dist/src/types/opencv/core_array.d.ts +2513 -0
  86. package/dist/src/types/opencv/core_array.js +3 -0
  87. package/dist/src/types/opencv/core_array.js.map +1 -0
  88. package/dist/src/types/opencv/core_cluster.d.ts +54 -0
  89. package/dist/src/types/opencv/core_cluster.js +3 -0
  90. package/dist/src/types/opencv/core_cluster.js.map +1 -0
  91. package/dist/src/types/opencv/core_hal_interface.d.ts +92 -0
  92. package/dist/src/types/opencv/core_hal_interface.js +3 -0
  93. package/dist/src/types/opencv/core_hal_interface.js.map +1 -0
  94. package/dist/src/types/opencv/core_utils.d.ts +510 -0
  95. package/dist/src/types/opencv/core_utils.js +3 -0
  96. package/dist/src/types/opencv/core_utils.js.map +1 -0
  97. package/dist/src/types/opencv/dnn.d.ts +336 -0
  98. package/dist/src/types/opencv/dnn.js +3 -0
  99. package/dist/src/types/opencv/dnn.js.map +1 -0
  100. package/dist/src/types/opencv/features2d_draw.d.ts +75 -0
  101. package/dist/src/types/opencv/features2d_draw.js +3 -0
  102. package/dist/src/types/opencv/features2d_draw.js.map +1 -0
  103. package/dist/src/types/opencv/imgproc_color_conversions.d.ts +299 -0
  104. package/dist/src/types/opencv/imgproc_color_conversions.js +3 -0
  105. package/dist/src/types/opencv/imgproc_color_conversions.js.map +1 -0
  106. package/dist/src/types/opencv/imgproc_draw.d.ts +502 -0
  107. package/dist/src/types/opencv/imgproc_draw.js +3 -0
  108. package/dist/src/types/opencv/imgproc_draw.js.map +1 -0
  109. package/dist/src/types/opencv/imgproc_feature.d.ts +533 -0
  110. package/dist/src/types/opencv/imgproc_feature.js +3 -0
  111. package/dist/src/types/opencv/imgproc_feature.js.map +1 -0
  112. package/dist/src/types/opencv/imgproc_filter.d.ts +689 -0
  113. package/dist/src/types/opencv/imgproc_filter.js +3 -0
  114. package/dist/src/types/opencv/imgproc_filter.js.map +1 -0
  115. package/dist/src/types/opencv/imgproc_hist.d.ts +291 -0
  116. package/dist/src/types/opencv/imgproc_hist.js +3 -0
  117. package/dist/src/types/opencv/imgproc_hist.js.map +1 -0
  118. package/dist/src/types/opencv/imgproc_misc.d.ts +473 -0
  119. package/dist/src/types/opencv/imgproc_misc.js +3 -0
  120. package/dist/src/types/opencv/imgproc_misc.js.map +1 -0
  121. package/dist/src/types/opencv/imgproc_object.d.ts +41 -0
  122. package/dist/src/types/opencv/imgproc_object.js +3 -0
  123. package/dist/src/types/opencv/imgproc_object.js.map +1 -0
  124. package/dist/src/types/opencv/imgproc_shape.d.ts +570 -0
  125. package/dist/src/types/opencv/imgproc_shape.js +3 -0
  126. package/dist/src/types/opencv/imgproc_shape.js.map +1 -0
  127. package/dist/src/types/opencv/imgproc_transform.d.ts +430 -0
  128. package/dist/src/types/opencv/imgproc_transform.js +3 -0
  129. package/dist/src/types/opencv/imgproc_transform.js.map +1 -0
  130. package/dist/src/types/opencv/index.d.ts +4 -0
  131. package/dist/src/types/opencv/index.js +19 -0
  132. package/dist/src/types/opencv/index.js.map +1 -0
  133. package/dist/src/types/opencv/objdetect.d.ts +43 -0
  134. package/dist/src/types/opencv/objdetect.js +3 -0
  135. package/dist/src/types/opencv/objdetect.js.map +1 -0
  136. package/dist/src/types/opencv/photo_inpaint.d.ts +25 -0
  137. package/dist/src/types/opencv/photo_inpaint.js +3 -0
  138. package/dist/src/types/opencv/photo_inpaint.js.map +1 -0
  139. package/dist/src/types/opencv/softdouble.d.ts +38 -0
  140. package/dist/src/types/opencv/softdouble.js +3 -0
  141. package/dist/src/types/opencv/softdouble.js.map +1 -0
  142. package/dist/src/types/opencv/softfloat.d.ts +38 -0
  143. package/dist/src/types/opencv/softfloat.js +3 -0
  144. package/dist/src/types/opencv/softfloat.js.map +1 -0
  145. package/dist/src/types/opencv/video_track.d.ts +276 -0
  146. package/dist/src/types/opencv/video_track.js +3 -0
  147. package/dist/src/types/opencv/video_track.js.map +1 -0
  148. package/package.json +5 -3
  149. package/src/index.ts +1 -0
  150. package/src/types/_cv.ts +6 -0
  151. package/src/types/emscripten.ts +286 -0
  152. package/src/types/opencv/Affine3.ts +206 -0
  153. package/src/types/opencv/Algorithm.ts +126 -0
  154. package/src/types/opencv/AutoBuffer.ts +50 -0
  155. package/src/types/opencv/BFMatcher.ts +37 -0
  156. package/src/types/opencv/BOWTrainer.ts +43 -0
  157. package/src/types/opencv/CascadeClassifier.ts +153 -0
  158. package/src/types/opencv/DescriptorMatcher.ts +244 -0
  159. package/src/types/opencv/DynamicBitset.ts +68 -0
  160. package/src/types/opencv/Exception.ts +54 -0
  161. package/src/types/opencv/Feature2D.ts +20 -0
  162. package/src/types/opencv/FlannBasedMatcher.ts +50 -0
  163. package/src/types/opencv/HOGDescriptor.ts +401 -0
  164. package/src/types/opencv/Logger.ts +34 -0
  165. package/src/types/opencv/LshTable.ts +81 -0
  166. package/src/types/opencv/Mat.ts +1764 -0
  167. package/src/types/opencv/MatExpr.ts +107 -0
  168. package/src/types/opencv/MatOp.ts +70 -0
  169. package/src/types/opencv/Matx.ts +228 -0
  170. package/src/types/opencv/Node.ts +33 -0
  171. package/src/types/opencv/ORB.ts +22 -0
  172. package/src/types/opencv/PCA.ts +204 -0
  173. package/src/types/opencv/RotatedRect.ts +72 -0
  174. package/src/types/opencv/_hacks.ts +322 -0
  175. package/src/types/opencv/_types.ts +44 -0
  176. package/src/types/opencv/calib3d.ts +2937 -0
  177. package/src/types/opencv/core_array.ts +3102 -0
  178. package/src/types/opencv/core_cluster.ts +81 -0
  179. package/src/types/opencv/core_hal_interface.ts +159 -0
  180. package/src/types/opencv/core_utils.ts +748 -0
  181. package/src/types/opencv/dnn.ts +505 -0
  182. package/src/types/opencv/features2d_draw.ts +114 -0
  183. package/src/types/opencv/imgproc_color_conversions.ts +527 -0
  184. package/src/types/opencv/imgproc_draw.ts +733 -0
  185. package/src/types/opencv/imgproc_feature.ts +681 -0
  186. package/src/types/opencv/imgproc_filter.ts +918 -0
  187. package/src/types/opencv/imgproc_hist.ts +399 -0
  188. package/src/types/opencv/imgproc_misc.ts +616 -0
  189. package/src/types/opencv/imgproc_object.ts +58 -0
  190. package/src/types/opencv/imgproc_shape.ts +734 -0
  191. package/src/types/opencv/imgproc_transform.ts +574 -0
  192. package/src/types/opencv/index.ts +4 -0
  193. package/src/types/opencv/objdetect.ts +103 -0
  194. package/src/types/opencv/photo_inpaint.ts +37 -0
  195. package/src/types/opencv/softdouble.ts +64 -0
  196. package/src/types/opencv/softfloat.ts +64 -0
  197. package/src/types/opencv/video_track.ts +372 -0
@@ -0,0 +1,734 @@
1
+ import {
2
+ bool,
3
+ double,
4
+ float,
5
+ InputArray,
6
+ int,
7
+ Moments,
8
+ OutputArray,
9
+ OutputArrayOfArrays,
10
+ Point,
11
+ Point2f,
12
+ Rect,
13
+ RotatedRect,
14
+ } from "./_types";
15
+ /*
16
+ * # Structural Analysis and Shape Descriptors
17
+ *
18
+ */
19
+ /**
20
+ * The function [cv::approxPolyDP] approximates a curve or a polygon with another curve/polygon with
21
+ * less vertices so that the distance between them is less or equal to the specified precision. It uses
22
+ * the Douglas-Peucker algorithm
23
+ *
24
+ * @param curve Input vector of a 2D point stored in std::vector or Mat
25
+ *
26
+ * @param approxCurve Result of the approximation. The type should match the type of the input curve.
27
+ *
28
+ * @param epsilon Parameter specifying the approximation accuracy. This is the maximum distance between
29
+ * the original curve and its approximation.
30
+ *
31
+ * @param closed If true, the approximated curve is closed (its first and last vertices are connected).
32
+ * Otherwise, it is not closed.
33
+ */
34
+ export declare function approxPolyDP(
35
+ curve: InputArray,
36
+ approxCurve: OutputArray,
37
+ epsilon: double,
38
+ closed: bool,
39
+ ): void;
40
+
41
+ /**
42
+ * The function computes a curve length or a closed contour perimeter.
43
+ *
44
+ * @param curve Input vector of 2D points, stored in std::vector or Mat.
45
+ *
46
+ * @param closed Flag indicating whether the curve is closed or not.
47
+ */
48
+ export declare function arcLength(curve: InputArray, closed: bool): double;
49
+
50
+ /**
51
+ * The function calculates and returns the minimal up-right bounding rectangle for the specified point
52
+ * set or non-zero pixels of gray-scale image.
53
+ *
54
+ * @param array Input gray-scale image or 2D point set, stored in std::vector or Mat.
55
+ */
56
+ export declare function boundingRect(array: InputArray): Rect;
57
+
58
+ /**
59
+ * The function finds the four vertices of a rotated rectangle. This function is useful to draw the
60
+ * rectangle. In C++, instead of using this function, you can directly use [RotatedRect::points]
61
+ * method. Please visit the [tutorial on Creating Bounding rotated boxes and ellipses for contours] for
62
+ * more information.
63
+ *
64
+ * @param box The input rotated rectangle. It may be the output of
65
+ *
66
+ * @param points The output array of four vertices of rectangles.
67
+ */
68
+ export declare function boxPoints(box: RotatedRect, points: OutputArray): void;
69
+
70
+ /**
71
+ * image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
72
+ * represents the background label. ltype specifies the output label image type, an important
73
+ * consideration based on the total number of labels or alternatively the total number of pixels in the
74
+ * source image. ccltype specifies the connected components labeling algorithm to use, currently Grana
75
+ * (BBDT) and Wu's (SAUF) algorithms are supported, see the [ConnectedComponentsAlgorithmsTypes] for
76
+ * details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not. This
77
+ * function uses parallel version of both Grana and Wu's algorithms if at least one allowed parallel
78
+ * framework is enabled and if the rows of the image are at least twice the number returned by
79
+ * [getNumberOfCPUs].
80
+ *
81
+ * @param image the 8-bit single-channel image to be labeled
82
+ *
83
+ * @param labels destination labeled image
84
+ *
85
+ * @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively
86
+ *
87
+ * @param ltype output image label type. Currently CV_32S and CV_16U are supported.
88
+ *
89
+ * @param ccltype connected components algorithm type (see the ConnectedComponentsAlgorithmsTypes).
90
+ */
91
+ export declare function connectedComponents(
92
+ image: InputArray,
93
+ labels: OutputArray,
94
+ connectivity: int,
95
+ ltype: int,
96
+ ccltype: int,
97
+ ): int;
98
+
99
+ /**
100
+ * This is an overloaded member function, provided for convenience. It differs from the above function
101
+ * only in what argument(s) it accepts.
102
+ *
103
+ * @param image the 8-bit single-channel image to be labeled
104
+ *
105
+ * @param labels destination labeled image
106
+ *
107
+ * @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively
108
+ *
109
+ * @param ltype output image label type. Currently CV_32S and CV_16U are supported.
110
+ */
111
+ export declare function connectedComponents(
112
+ image: InputArray,
113
+ labels: OutputArray,
114
+ connectivity?: int,
115
+ ltype?: int,
116
+ ): int;
117
+
118
+ /**
119
+ * image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
120
+ * represents the background label. ltype specifies the output label image type, an important
121
+ * consideration based on the total number of labels or alternatively the total number of pixels in the
122
+ * source image. ccltype specifies the connected components labeling algorithm to use, currently
123
+ * Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the
124
+ * [ConnectedComponentsAlgorithmsTypes] for details. Note that SAUF algorithm forces a row major
125
+ * ordering of labels while BBDT does not. This function uses parallel version of both Grana and Wu's
126
+ * algorithms (statistics included) if at least one allowed parallel framework is enabled and if the
127
+ * rows of the image are at least twice the number returned by [getNumberOfCPUs].
128
+ *
129
+ * @param image the 8-bit single-channel image to be labeled
130
+ *
131
+ * @param labels destination labeled image
132
+ *
133
+ * @param stats statistics output for each label, including the background label, see below for
134
+ * available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of
135
+ * ConnectedComponentsTypes. The data type is CV_32S.
136
+ *
137
+ * @param centroids centroid output for each label, including the background label. Centroids are
138
+ * accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.
139
+ *
140
+ * @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively
141
+ *
142
+ * @param ltype output image label type. Currently CV_32S and CV_16U are supported.
143
+ *
144
+ * @param ccltype connected components algorithm type (see ConnectedComponentsAlgorithmsTypes).
145
+ */
146
+ export declare function connectedComponentsWithStats(
147
+ image: InputArray,
148
+ labels: OutputArray,
149
+ stats: OutputArray,
150
+ centroids: OutputArray,
151
+ connectivity: int,
152
+ ltype: int,
153
+ ccltype: int,
154
+ ): int;
155
+
156
+ /**
157
+ * This is an overloaded member function, provided for convenience. It differs from the above function
158
+ * only in what argument(s) it accepts.
159
+ *
160
+ * @param image the 8-bit single-channel image to be labeled
161
+ *
162
+ * @param labels destination labeled image
163
+ *
164
+ * @param stats statistics output for each label, including the background label, see below for
165
+ * available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of
166
+ * ConnectedComponentsTypes. The data type is CV_32S.
167
+ *
168
+ * @param centroids centroid output for each label, including the background label. Centroids are
169
+ * accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.
170
+ *
171
+ * @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively
172
+ *
173
+ * @param ltype output image label type. Currently CV_32S and CV_16U are supported.
174
+ */
175
+ export declare function connectedComponentsWithStats(
176
+ image: InputArray,
177
+ labels: OutputArray,
178
+ stats: OutputArray,
179
+ centroids: OutputArray,
180
+ connectivity?: int,
181
+ ltype?: int,
182
+ ): int;
183
+
184
+ /**
185
+ * The function computes a contour area. Similarly to moments , the area is computed using the Green
186
+ * formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using
187
+ * [drawContours] or [fillPoly] , can be different. Also, the function will most certainly give a wrong
188
+ * results for contours with self-intersections.
189
+ *
190
+ * Example:
191
+ *
192
+ * ```cpp
193
+ * vector<Point> contour;
194
+ * contour.push_back(Point2f(0, 0));
195
+ * contour.push_back(Point2f(10, 0));
196
+ * contour.push_back(Point2f(10, 10));
197
+ * contour.push_back(Point2f(5, 4));
198
+ *
199
+ * double area0 = contourArea(contour);
200
+ * vector<Point> approx;
201
+ * approxPolyDP(contour, approx, 5, true);
202
+ * double area1 = contourArea(approx);
203
+ *
204
+ * cout << "area0 =" << area0 << endl <<
205
+ * "area1 =" << area1 << endl <<
206
+ * "approx poly vertices" << approx.size() << endl;
207
+ * ```
208
+ *
209
+ * @param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat.
210
+ *
211
+ * @param oriented Oriented area flag. If it is true, the function returns a signed area value,
212
+ * depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can
213
+ * determine orientation of a contour by taking the sign of an area. By default, the parameter is
214
+ * false, which means that the absolute value is returned.
215
+ */
216
+ export declare function contourArea(
217
+ contour: InputArray,
218
+ oriented?: bool,
219
+ ): double;
220
+
221
+ /**
222
+ * The function [cv::convexHull] finds the convex hull of a 2D point set using the Sklansky's algorithm
223
+ * Sklansky82 that has *O(N logN)* complexity in the current implementation.
224
+ *
225
+ * `points` and `hull` should be different arrays, inplace processing isn't supported.
226
+ * Check [the corresponding tutorial] for more details.
227
+ *
228
+ * useful links:
229
+ *
230
+ * @param points Input 2D point set, stored in std::vector or Mat.
231
+ *
232
+ * @param hull Output convex hull. It is either an integer vector of indices or vector of points. In
233
+ * the first case, the hull elements are 0-based indices of the convex hull points in the original
234
+ * array (since the set of convex hull points is a subset of the original point set). In the second
235
+ * case, hull elements are the convex hull points themselves.
236
+ *
237
+ * @param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise.
238
+ * Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing
239
+ * to the right, and its Y axis pointing upwards.
240
+ *
241
+ * @param returnPoints Operation flag. In case of a matrix, when the flag is true, the function returns
242
+ * convex hull points. Otherwise, it returns indices of the convex hull points. When the output array
243
+ * is std::vector, the flag is ignored, and the output depends on the type of the vector:
244
+ * std::vector<int> implies returnPoints=false, std::vector<Point> implies returnPoints=true.
245
+ */
246
+ export declare function convexHull(
247
+ points: InputArray,
248
+ hull: OutputArray,
249
+ clockwise?: bool,
250
+ returnPoints?: bool,
251
+ ): void;
252
+
253
+ /**
254
+ * The figure below displays convexity defects of a hand contour:
255
+ *
256
+ * @param contour Input contour.
257
+ *
258
+ * @param convexhull Convex hull obtained using convexHull that should contain indices of the contour
259
+ * points that make the hull.
260
+ *
261
+ * @param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java
262
+ * interface each convexity defect is represented as 4-element integer vector (a.k.a. Vec4i):
263
+ * (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices in the
264
+ * original contour of the convexity defect beginning, end and the farthest point, and fixpt_depth is
265
+ * fixed-point approximation (with 8 fractional bits) of the distance between the farthest contour
266
+ * point and the hull. That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
267
+ */
268
+ export declare function convexityDefects(
269
+ contour: InputArray,
270
+ convexhull: InputArray,
271
+ convexityDefects: OutputArray,
272
+ ): void;
273
+
274
+ export declare function createGeneralizedHoughBallard(): any;
275
+
276
+ export declare function createGeneralizedHoughGuil(): any;
277
+
278
+ /**
279
+ * The function retrieves contours from the binary image using the algorithm Suzuki85 . The contours
280
+ * are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the
281
+ * OpenCV sample directory.
282
+ *
283
+ * Since opencv 3.2 source image is not modified by this function.
284
+ *
285
+ * @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero pixels
286
+ * remain 0's, so the image is treated as binary . You can use compare, inRange, threshold ,
287
+ * adaptiveThreshold, Canny, and others to create a binary image out of a grayscale or color one. If
288
+ * mode equals to RETR_CCOMP or RETR_FLOODFILL, the input can also be a 32-bit integer image of labels
289
+ * (CV_32SC1).
290
+ *
291
+ * @param contours Detected contours. Each contour is stored as a vector of points (e.g.
292
+ * std::vector<std::vector<cv::Point> >).
293
+ *
294
+ * @param hierarchy Optional output vector (e.g. std::vector<cv::Vec4i>), containing information about
295
+ * the image topology. It has as many elements as the number of contours. For each i-th contour
296
+ * contours[i], the elements hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3]
297
+ * are set to 0-based indices in contours of the next and previous contours at the same hierarchical
298
+ * level, the first child contour and the parent contour, respectively. If for the contour i there are
299
+ * no next, previous, parent, or nested contours, the corresponding elements of hierarchy[i] will be
300
+ * negative.
301
+ *
302
+ * @param mode Contour retrieval mode, see RetrievalModes
303
+ *
304
+ * @param method Contour approximation method, see ContourApproximationModes
305
+ *
306
+ * @param offset Optional offset by which every contour point is shifted. This is useful if the
307
+ * contours are extracted from the image ROI and then they should be analyzed in the whole image
308
+ * context.
309
+ */
310
+ export declare function findContours(
311
+ image: InputArray,
312
+ contours: OutputArrayOfArrays,
313
+ hierarchy: OutputArray,
314
+ mode: int,
315
+ method: int,
316
+ offset?: Point,
317
+ ): void;
318
+
319
+ /**
320
+ * This is an overloaded member function, provided for convenience. It differs from the above function
321
+ * only in what argument(s) it accepts.
322
+ */
323
+ export declare function findContours(
324
+ image: InputArray,
325
+ contours: OutputArrayOfArrays,
326
+ mode: int,
327
+ method: int,
328
+ offset?: Point,
329
+ ): void;
330
+
331
+ /**
332
+ * The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of
333
+ * all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm
334
+ * described by Fitzgibbon95 is used. Developer should keep in mind that it is possible that the
335
+ * returned ellipse/rotatedRect data contains negative indices, due to the data points being close to
336
+ * the border of the containing [Mat] element.
337
+ *
338
+ * @param points Input 2D point set, stored in std::vector<> or Mat
339
+ */
340
+ export declare function fitEllipse(points: InputArray): RotatedRect;
341
+
342
+ /**
343
+ * The function calculates the ellipse that fits a set of 2D points. It returns the rotated rectangle
344
+ * in which the ellipse is inscribed. The Approximate Mean Square (AMS) proposed by Taubin1991 is used.
345
+ *
346
+ * For an ellipse, this basis set is `$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) $`, which is a set
347
+ * of six free coefficients `$
348
+ * A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} $`. However, to
349
+ * specify an ellipse, all that is needed is five numbers; the major and minor axes lengths `$ (a,b)
350
+ * $`, the position `$ (x_0,y_0) $`, and the orientation `$ \\theta $`. This is because the basis set
351
+ * includes lines, quadratics, parabolic and hyperbolic functions as well as elliptical functions as
352
+ * possible fits. If the fit is found to be a parabolic or hyperbolic function then the standard
353
+ * [fitEllipse] method is used. The AMS method restricts the fit to parabolic, hyperbolic and
354
+ * elliptical curves by imposing the condition that `$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 $` where the
355
+ * matrices `$ Dx $` and `$ Dy $` are the partial derivatives of the design matrix `$ D $` with respect
356
+ * to x and y. The matrices are formed row by row applying the following to each of the points in the
357
+ * set: `\\begin{align*} D(i,:)&=\\left\\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\\right\\} &
358
+ * D_x(i,:)&=\\left\\{2 x_i,y_i,0,1,0,0\\right\\} & D_y(i,:)&=\\left\\{0,x_i,2 y_i,0,1,0\\right\\}
359
+ * \\end{align*}` The AMS method minimizes the cost function `\\begin{equation*} \\epsilon ^2=\\frac{
360
+ * A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T } \\end{equation*}`
361
+ *
362
+ * The minimum cost is found by solving the generalized eigenvalue problem.
363
+ *
364
+ * `\\begin{equation*} D^T D A = \\lambda \\left( D_x^T D_x + D_y^T D_y\\right) A \\end{equation*}`
365
+ *
366
+ * @param points Input 2D point set, stored in std::vector<> or Mat
367
+ */
368
+ export declare function fitEllipseAMS(points: InputArray): RotatedRect;
369
+
370
+ /**
371
+ * The function calculates the ellipse that fits a set of 2D points. It returns the rotated rectangle
372
+ * in which the ellipse is inscribed. The Direct least square (Direct) method by Fitzgibbon1999 is
373
+ * used.
374
+ *
375
+ * For an ellipse, this basis set is `$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) $`, which is a set
376
+ * of six free coefficients `$
377
+ * A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} $`. However, to
378
+ * specify an ellipse, all that is needed is five numbers; the major and minor axes lengths `$ (a,b)
379
+ * $`, the position `$ (x_0,y_0) $`, and the orientation `$ \\theta $`. This is because the basis set
380
+ * includes lines, quadratics, parabolic and hyperbolic functions as well as elliptical functions as
381
+ * possible fits. The Direct method confines the fit to ellipses by ensuring that `$ 4 A_{xx} A_{yy}-
382
+ * A_{xy}^2 > 0 $`. The condition imposed is that `$ 4 A_{xx} A_{yy}- A_{xy}^2=1 $` which satisfies the
383
+ * inequality and as the coefficients can be arbitrarily scaled is not overly restrictive.
384
+ *
385
+ * `\\begin{equation*} \\epsilon ^2= A^T D^T D A \\quad \\text{with} \\quad A^T C A =1 \\quad
386
+ * \\text{and} \\quad C=\\left(\\begin{matrix} 0 & 0 & 2 & 0 & 0 & 0 \\\\ 0 & -1 & 0 & 0 & 0 & 0 \\\\ 2
387
+ * & 0 & 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 & 0 & 0
388
+ * \\end{matrix} \\right) \\end{equation*}`
389
+ *
390
+ * The minimum cost is found by solving the generalized eigenvalue problem.
391
+ *
392
+ * `\\begin{equation*} D^T D A = \\lambda \\left( C\\right) A \\end{equation*}`
393
+ *
394
+ * The system produces only one positive eigenvalue `$ \\lambda$` which is chosen as the solution with
395
+ * its eigenvector `$\\mathbf{u}$`. These are used to find the coefficients
396
+ *
397
+ * `\\begin{equation*} A = \\sqrt{\\frac{1}{\\mathbf{u}^T C \\mathbf{u}}} \\mathbf{u} \\end{equation*}`
398
+ * The scaling factor guarantees that `$A^T C A =1$`.
399
+ *
400
+ * @param points Input 2D point set, stored in std::vector<> or Mat
401
+ */
402
+ export declare function fitEllipseDirect(points: InputArray): RotatedRect;
403
+
404
+ /**
405
+ * The function fitLine fits a line to a 2D or 3D point set by minimizing `$\\sum_i \\rho(r_i)$` where
406
+ * `$r_i$` is a distance between the `$i^{th}$` point, the line and `$\\rho(r)$` is a distance
407
+ * function, one of the following:
408
+ *
409
+ * DIST_L2 `\\[\\rho (r) = r^2/2 \\quad \\text{(the simplest and the fastest least-squares method)}\\]`
410
+ * DIST_L1 `\\[\\rho (r) = r\\]`
411
+ * DIST_L12 `\\[\\rho (r) = 2 \\cdot ( \\sqrt{1 + \\frac{r^2}{2}} - 1)\\]`
412
+ * DIST_FAIR `\\[\\rho \\left (r \\right ) = C^2 \\cdot \\left ( \\frac{r}{C} - \\log{\\left(1 +
413
+ * \\frac{r}{C}\\right)} \\right ) \\quad \\text{where} \\quad C=1.3998\\]`
414
+ * DIST_WELSCH `\\[\\rho \\left (r \\right ) = \\frac{C^2}{2} \\cdot \\left ( 1 -
415
+ * \\exp{\\left(-\\left(\\frac{r}{C}\\right)^2\\right)} \\right ) \\quad \\text{where} \\quad
416
+ * C=2.9846\\]`
417
+ * DIST_HUBER `\\[\\rho (r) = \\fork{r^2/2}{if \\(r < C\\)}{C \\cdot (r-C/2)}{otherwise} \\quad
418
+ * \\text{where} \\quad C=1.345\\]`
419
+ *
420
+ * The algorithm is based on the M-estimator ( ) technique that iteratively fits the line using the
421
+ * weighted least-squares algorithm. After each iteration the weights `$w_i$` are adjusted to be
422
+ * inversely proportional to `$\\rho(r_i)$` .
423
+ *
424
+ * @param points Input vector of 2D or 3D points, stored in std::vector<> or Mat.
425
+ *
426
+ * @param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements (like
427
+ * Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and (x0, y0)
428
+ * is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like Vec6f) -
429
+ * (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line and (x0,
430
+ * y0, z0) is a point on the line.
431
+ *
432
+ * @param distType Distance used by the M-estimator, see DistanceTypes
433
+ *
434
+ * @param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value is
435
+ * chosen.
436
+ *
437
+ * @param reps Sufficient accuracy for the radius (distance between the coordinate origin and the
438
+ * line).
439
+ *
440
+ * @param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.
441
+ */
442
+ export declare function fitLine(
443
+ points: InputArray,
444
+ line: OutputArray,
445
+ distType: int,
446
+ param: double,
447
+ reps: double,
448
+ aeps: double,
449
+ ): void;
450
+
451
+ /**
452
+ * The function calculates seven Hu invariants (introduced in Hu62; see also ) defined as:
453
+ *
454
+ * `\\[\\begin{array}{l} hu[0]= \\eta _{20}+ \\eta _{02} \\\\ hu[1]=( \\eta _{20}- \\eta _{02})^{2}+4
455
+ * \\eta _{11}^{2} \\\\ hu[2]=( \\eta _{30}-3 \\eta _{12})^{2}+ (3 \\eta _{21}- \\eta _{03})^{2} \\\\
456
+ * hu[3]=( \\eta _{30}+ \\eta _{12})^{2}+ ( \\eta _{21}+ \\eta _{03})^{2} \\\\ hu[4]=( \\eta _{30}-3
457
+ * \\eta _{12})( \\eta _{30}+ \\eta _{12})[( \\eta _{30}+ \\eta _{12})^{2}-3( \\eta _{21}+ \\eta
458
+ * _{03})^{2}]+(3 \\eta _{21}- \\eta _{03})( \\eta _{21}+ \\eta _{03})[3( \\eta _{30}+ \\eta
459
+ * _{12})^{2}-( \\eta _{21}+ \\eta _{03})^{2}] \\\\ hu[5]=( \\eta _{20}- \\eta _{02})[( \\eta _{30}+
460
+ * \\eta _{12})^{2}- ( \\eta _{21}+ \\eta _{03})^{2}]+4 \\eta _{11}( \\eta _{30}+ \\eta _{12})( \\eta
461
+ * _{21}+ \\eta _{03}) \\\\ hu[6]=(3 \\eta _{21}- \\eta _{03})( \\eta _{21}+ \\eta _{03})[3( \\eta
462
+ * _{30}+ \\eta _{12})^{2}-( \\eta _{21}+ \\eta _{03})^{2}]-( \\eta _{30}-3 \\eta _{12})( \\eta _{21}+
463
+ * \\eta _{03})[3( \\eta _{30}+ \\eta _{12})^{2}-( \\eta _{21}+ \\eta _{03})^{2}] \\\\ \\end{array}\\]`
464
+ *
465
+ * where `$\\eta_{ji}$` stands for `$\\texttt{Moments::nu}_{ji}$` .
466
+ *
467
+ * These values are proved to be invariants to the image scale, rotation, and reflection except the
468
+ * seventh one, whose sign is changed by reflection. This invariance is proved with the assumption of
469
+ * infinite image resolution. In case of raster images, the computed Hu invariants for the original and
470
+ * transformed images are a bit different.
471
+ *
472
+ * [matchShapes]
473
+ *
474
+ * @param moments Input moments computed with moments .
475
+ *
476
+ * @param hu Output Hu invariants.
477
+ */
478
+ export declare function HuMoments(moments: any, hu: double): void;
479
+
480
+ /**
481
+ * This is an overloaded member function, provided for convenience. It differs from the above function
482
+ * only in what argument(s) it accepts.
483
+ */
484
+ export declare function HuMoments(m: any, hu: OutputArray): void;
485
+
486
+ export declare function intersectConvexConvex(
487
+ _p1: InputArray,
488
+ _p2: InputArray,
489
+ _p12: OutputArray,
490
+ handleNested?: bool,
491
+ ): float;
492
+
493
+ /**
494
+ * The function tests whether the input contour is convex or not. The contour must be simple, that is,
495
+ * without self-intersections. Otherwise, the function output is undefined.
496
+ *
497
+ * @param contour Input vector of 2D points, stored in std::vector<> or Mat
498
+ */
499
+ export declare function isContourConvex(contour: InputArray): bool;
500
+
501
+ /**
502
+ * The function compares two shapes. All three implemented methods use the Hu invariants (see
503
+ * [HuMoments])
504
+ *
505
+ * @param contour1 First contour or grayscale image.
506
+ *
507
+ * @param contour2 Second contour or grayscale image.
508
+ *
509
+ * @param method Comparison method, see ShapeMatchModes
510
+ *
511
+ * @param parameter Method-specific parameter (not supported now).
512
+ */
513
+ export declare function matchShapes(
514
+ contour1: InputArray,
515
+ contour2: InputArray,
516
+ method: int,
517
+ parameter: double,
518
+ ): double;
519
+
520
+ /**
521
+ * The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a
522
+ * specified point set. Developer should keep in mind that the returned [RotatedRect] can contain
523
+ * negative indices when data is close to the containing [Mat] element boundary.
524
+ *
525
+ * @param points Input vector of 2D points, stored in std::vector<> or Mat
526
+ */
527
+ export declare function minAreaRect(points: InputArray): RotatedRect;
528
+
529
+ /**
530
+ * The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm.
531
+ *
532
+ * @param points Input vector of 2D points, stored in std::vector<> or Mat
533
+ *
534
+ * @param center Output center of the circle.
535
+ *
536
+ * @param radius Output radius of the circle.
537
+ */
538
+ export declare function minEnclosingCircle(
539
+ points: InputArray,
540
+ center: any,
541
+ radius: any,
542
+ ): void;
543
+
544
+ /**
545
+ * The function finds a triangle of minimum area enclosing the given set of 2D points and returns its
546
+ * area. The output for a given 2D point set is shown in the image below. 2D points are depicted in
547
+ * red* and the enclosing triangle in *yellow*.
548
+ *
549
+ * The implementation of the algorithm is based on O'Rourke's ORourke86 and Klee and Laskowski's
550
+ * KleeLaskowski85 papers. O'Rourke provides a `$\\theta(n)$` algorithm for finding the minimal
551
+ * enclosing triangle of a 2D convex polygon with n vertices. Since the [minEnclosingTriangle] function
552
+ * takes a 2D point set as input an additional preprocessing step of computing the convex hull of the
553
+ * 2D point set is required. The complexity of the [convexHull] function is `$O(n log(n))$` which is
554
+ * higher than `$\\theta(n)$`. Thus the overall complexity of the function is `$O(n log(n))$`.
555
+ *
556
+ * @param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector<> or Mat
557
+ *
558
+ * @param triangle Output vector of three 2D points defining the vertices of the triangle. The depth of
559
+ * the OutputArray must be CV_32F.
560
+ */
561
+ export declare function minEnclosingTriangle(
562
+ points: InputArray,
563
+ triangle: OutputArray,
564
+ ): double;
565
+
566
+ /**
567
+ * The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The
568
+ * results are returned in the structure [cv::Moments].
569
+ *
570
+ * moments.
571
+ *
572
+ * Only applicable to contour moments calculations from Python bindings: Note that the numpy type for
573
+ * the input array should be either np.int32 or np.float32.
574
+ *
575
+ * [contourArea], [arcLength]
576
+ *
577
+ * @param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array ( $1 \times
578
+ * N$ or $N \times 1$ ) of 2D points (Point or Point2f ).
579
+ *
580
+ * @param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is
581
+ * used for images only.
582
+ */
583
+ export declare function moments(array: InputArray, binaryImage?: bool): Moments;
584
+
585
+ /**
586
+ * The function determines whether the point is inside a contour, outside, or lies on an edge (or
587
+ * coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge)
588
+ * value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively.
589
+ * Otherwise, the return value is a signed distance between the point and the nearest contour edge.
590
+ *
591
+ * See below a sample output of the function where each image pixel is tested against the contour:
592
+ *
593
+ * @param contour Input contour.
594
+ *
595
+ * @param pt Point tested against the contour.
596
+ *
597
+ * @param measureDist If true, the function estimates the signed distance from the point to the nearest
598
+ * contour edge. Otherwise, the function only checks if the point is inside a contour or not.
599
+ */
600
+ export declare function pointPolygonTest(
601
+ contour: InputArray,
602
+ pt: Point2f,
603
+ measureDist: bool,
604
+ ): double;
605
+
606
+ /**
607
+ * If there is then the vertices of the intersecting region are returned as well.
608
+ *
609
+ * Below are some examples of intersection configurations. The hatched pattern indicates the
610
+ * intersecting region and the red vertices are returned by the function.
611
+ *
612
+ * One of [RectanglesIntersectTypes]
613
+ *
614
+ * @param rect1 First rectangle
615
+ *
616
+ * @param rect2 Second rectangle
617
+ *
618
+ * @param intersectingRegion The output array of the vertices of the intersecting region. It returns at
619
+ * most 8 vertices. Stored as std::vector<cv::Point2f> or cv::Mat as Mx1 of type CV_32FC2.
620
+ */
621
+ export declare function rotatedRectangleIntersection(
622
+ rect1: any,
623
+ rect2: any,
624
+ intersectingRegion: OutputArray,
625
+ ): int;
626
+
627
+ export declare const CCL_WU: ConnectedComponentsAlgorithmsTypes; // initializer: = 0
628
+
629
+ export declare const CCL_DEFAULT: ConnectedComponentsAlgorithmsTypes; // initializer: = -1
630
+
631
+ export declare const CCL_GRANA: ConnectedComponentsAlgorithmsTypes; // initializer: = 1
632
+
633
+ /**
634
+ * The leftmost (x) coordinate which is the inclusive start of the bounding box in the horizontal
635
+ * direction.
636
+ *
637
+ */
638
+ export declare const CC_STAT_LEFT: ConnectedComponentsTypes; // initializer: = 0
639
+
640
+ /**
641
+ * The topmost (y) coordinate which is the inclusive start of the bounding box in the vertical
642
+ * direction.
643
+ *
644
+ */
645
+ export declare const CC_STAT_TOP: ConnectedComponentsTypes; // initializer: = 1
646
+
647
+ export declare const CC_STAT_WIDTH: ConnectedComponentsTypes; // initializer: = 2
648
+
649
+ export declare const CC_STAT_HEIGHT: ConnectedComponentsTypes; // initializer: = 3
650
+
651
+ export declare const CC_STAT_AREA: ConnectedComponentsTypes; // initializer: = 4
652
+
653
+ export declare const CC_STAT_MAX: ConnectedComponentsTypes; // initializer: = 5
654
+
655
+ /**
656
+ * stores absolutely all the contour points. That is, any 2 subsequent points (x1,y1) and (x2,y2) of
657
+ * the contour will be either horizontal, vertical or diagonal neighbors, that is,
658
+ * max(abs(x1-x2),abs(y2-y1))==1.
659
+ *
660
+ */
661
+ export declare const CHAIN_APPROX_NONE: ContourApproximationModes; // initializer: = 1
662
+
663
+ /**
664
+ * compresses horizontal, vertical, and diagonal segments and leaves only their end points. For
665
+ * example, an up-right rectangular contour is encoded with 4 points.
666
+ *
667
+ */
668
+ export declare const CHAIN_APPROX_SIMPLE: ContourApproximationModes; // initializer: = 2
669
+
670
+ /**
671
+ * applies one of the flavors of the Teh-Chin chain approximation algorithm TehChin89
672
+ *
673
+ */
674
+ export declare const CHAIN_APPROX_TC89_L1: ContourApproximationModes; // initializer: = 3
675
+
676
+ /**
677
+ * applies one of the flavors of the Teh-Chin chain approximation algorithm TehChin89
678
+ *
679
+ */
680
+ export declare const CHAIN_APPROX_TC89_KCOS: ContourApproximationModes; // initializer: = 4
681
+
682
+ export declare const INTERSECT_NONE: RectanglesIntersectTypes; // initializer: = 0
683
+
684
+ export declare const INTERSECT_PARTIAL: RectanglesIntersectTypes; // initializer: = 1
685
+
686
+ export declare const INTERSECT_FULL: RectanglesIntersectTypes; // initializer: = 2
687
+
688
+ /**
689
+ * retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for all the
690
+ * contours.
691
+ *
692
+ */
693
+ export declare const RETR_EXTERNAL: RetrievalModes; // initializer: = 0
694
+
695
+ /**
696
+ * retrieves all of the contours without establishing any hierarchical relationships.
697
+ *
698
+ */
699
+ export declare const RETR_LIST: RetrievalModes; // initializer: = 1
700
+
701
+ /**
702
+ * retrieves all of the contours and organizes them into a two-level hierarchy. At the top level, there
703
+ * are external boundaries of the components. At the second level, there are boundaries of the holes.
704
+ * If there is another contour inside a hole of a connected component, it is still put at the top
705
+ * level.
706
+ *
707
+ */
708
+ export declare const RETR_CCOMP: RetrievalModes; // initializer: = 2
709
+
710
+ /**
711
+ * retrieves all of the contours and reconstructs a full hierarchy of nested contours.
712
+ *
713
+ */
714
+ export declare const RETR_TREE: RetrievalModes; // initializer: = 3
715
+
716
+ export declare const RETR_FLOODFILL: RetrievalModes; // initializer: = 4
717
+
718
+ export declare const CONTOURS_MATCH_I1: ShapeMatchModes; // initializer: =1
719
+
720
+ export declare const CONTOURS_MATCH_I2: ShapeMatchModes; // initializer: =2
721
+
722
+ export declare const CONTOURS_MATCH_I3: ShapeMatchModes; // initializer: =3
723
+
724
+ export type ConnectedComponentsAlgorithmsTypes = any;
725
+
726
+ export type ConnectedComponentsTypes = any;
727
+
728
+ export type ContourApproximationModes = any;
729
+
730
+ export type RectanglesIntersectTypes = any;
731
+
732
+ export type RetrievalModes = any;
733
+
734
+ export type ShapeMatchModes = any;