imagecore 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/.gitignore +24 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +2 -0
  4. data/ext/imagecore/analyze_image.cxx +58 -0
  5. data/ext/imagecore/analyze_image.h +6 -0
  6. data/ext/imagecore/extconf.rb +9 -0
  7. data/ext/imagecore/imagecore.cxx +34 -0
  8. data/ext/opencv/core/___.c +3 -0
  9. data/ext/opencv/core/alloc.cpp +697 -0
  10. data/ext/opencv/core/array.cpp +3206 -0
  11. data/ext/opencv/core/datastructs.cpp +4064 -0
  12. data/ext/opencv/core/extconf.rb +22 -0
  13. data/ext/opencv/core/matrix.cpp +3777 -0
  14. data/ext/opencv/core/precomp.hpp +216 -0
  15. data/ext/opencv/core/system.cpp +832 -0
  16. data/ext/opencv/core/tables.cpp +3512 -0
  17. data/ext/opencv/highgui/___.c +3 -0
  18. data/ext/opencv/highgui/bitstrm.cpp +582 -0
  19. data/ext/opencv/highgui/bitstrm.hpp +182 -0
  20. data/ext/opencv/highgui/extconf.rb +28 -0
  21. data/ext/opencv/highgui/grfmt_base.cpp +128 -0
  22. data/ext/opencv/highgui/grfmt_base.hpp +113 -0
  23. data/ext/opencv/highgui/grfmt_bmp.cpp +564 -0
  24. data/ext/opencv/highgui/grfmt_bmp.hpp +99 -0
  25. data/ext/opencv/highgui/grfmt_exr.hpp +113 -0
  26. data/ext/opencv/highgui/grfmt_imageio.hpp +56 -0
  27. data/ext/opencv/highgui/grfmt_jpeg.cpp +622 -0
  28. data/ext/opencv/highgui/grfmt_jpeg.hpp +90 -0
  29. data/ext/opencv/highgui/grfmt_jpeg2000.cpp +529 -0
  30. data/ext/opencv/highgui/grfmt_jpeg2000.hpp +95 -0
  31. data/ext/opencv/highgui/grfmt_png.cpp +406 -0
  32. data/ext/opencv/highgui/grfmt_png.hpp +101 -0
  33. data/ext/opencv/highgui/grfmt_pxm.cpp +513 -0
  34. data/ext/opencv/highgui/grfmt_pxm.hpp +92 -0
  35. data/ext/opencv/highgui/grfmt_sunras.cpp +425 -0
  36. data/ext/opencv/highgui/grfmt_sunras.hpp +105 -0
  37. data/ext/opencv/highgui/grfmt_tiff.cpp +718 -0
  38. data/ext/opencv/highgui/grfmt_tiff.hpp +136 -0
  39. data/ext/opencv/highgui/grfmts.hpp +56 -0
  40. data/ext/opencv/highgui/loadsave.cpp +535 -0
  41. data/ext/opencv/highgui/precomp.hpp +223 -0
  42. data/ext/opencv/highgui/utils.cpp +689 -0
  43. data/ext/opencv/highgui/utils.hpp +128 -0
  44. data/ext/opencv/imgproc/___.c +3 -0
  45. data/ext/opencv/imgproc/_geom.h +72 -0
  46. data/ext/opencv/imgproc/color.cpp +3179 -0
  47. data/ext/opencv/imgproc/contours.cpp +1780 -0
  48. data/ext/opencv/imgproc/extconf.rb +11 -0
  49. data/ext/opencv/imgproc/filter.cpp +3063 -0
  50. data/ext/opencv/imgproc/precomp.hpp +159 -0
  51. data/ext/opencv/imgproc/shapedescr.cpp +1306 -0
  52. data/ext/opencv/imgproc/smooth.cpp +1566 -0
  53. data/ext/opencv/imgproc/tables.cpp +214 -0
  54. data/ext/opencv/imgproc/thresh.cpp +636 -0
  55. data/ext/opencv/imgproc/utils.cpp +242 -0
  56. data/ext/opencv/include/opencv2/core/core.hpp +4344 -0
  57. data/ext/opencv/include/opencv2/core/core_c.h +1885 -0
  58. data/ext/opencv/include/opencv2/core/internal.hpp +710 -0
  59. data/ext/opencv/include/opencv2/core/mat.hpp +2557 -0
  60. data/ext/opencv/include/opencv2/core/operations.hpp +3623 -0
  61. data/ext/opencv/include/opencv2/core/types_c.h +1875 -0
  62. data/ext/opencv/include/opencv2/core/version.hpp +58 -0
  63. data/ext/opencv/include/opencv2/highgui/highgui.hpp +198 -0
  64. data/ext/opencv/include/opencv2/highgui/highgui_c.h +506 -0
  65. data/ext/opencv/include/opencv2/imgproc/imgproc.hpp +1139 -0
  66. data/ext/opencv/include/opencv2/imgproc/imgproc_c.h +783 -0
  67. data/ext/opencv/include/opencv2/imgproc/types_c.h +538 -0
  68. data/imagecore.gemspec +20 -0
  69. data/lib/imagecore.rb +16 -0
  70. data/lib/imagecore/version.rb +3 -0
  71. metadata +119 -0
@@ -0,0 +1,538 @@
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
+ // Third party copyrights are property of their respective owners.
16
+ //
17
+ // Redistribution and use in source and binary forms, with or without modification,
18
+ // are permitted provided that the following conditions are met:
19
+ //
20
+ // * Redistribution's of source code must retain the above copyright notice,
21
+ // this list of conditions and the following disclaimer.
22
+ //
23
+ // * Redistribution's in binary form must reproduce the above copyright notice,
24
+ // this list of conditions and the following disclaimer in the documentation
25
+ // and/or other materials provided with the distribution.
26
+ //
27
+ // * The name of the copyright holders may not be used to endorse or promote products
28
+ // derived from this software without specific prior written permission.
29
+ //
30
+ // This software is provided by the copyright holders and contributors "as is" and
31
+ // any express or implied warranties, including, but not limited to, the implied
32
+ // warranties of merchantability and fitness for a particular purpose are disclaimed.
33
+ // In no event shall the Intel Corporation or contributors be liable for any direct,
34
+ // indirect, incidental, special, exemplary, or consequential damages
35
+ // (including, but not limited to, procurement of substitute goods or services;
36
+ // loss of use, data, or profits; or business interruption) however caused
37
+ // and on any theory of liability, whether in contract, strict liability,
38
+ // or tort (including negligence or otherwise) arising in any way out of
39
+ // the use of this software, even if advised of the possibility of such damage.
40
+ //
41
+ //M*/
42
+
43
+ #ifndef __OPENCV_IMGPROC_TYPES_C_H__
44
+ #define __OPENCV_IMGPROC_TYPES_C_H__
45
+
46
+ #include "opencv2/core/core_c.h"
47
+ #include "opencv2/imgproc/types_c.h"
48
+
49
+ #ifdef __cplusplus
50
+ extern "C" {
51
+ #endif
52
+
53
+ /* Connected component structure */
54
+ typedef struct CvConnectedComp
55
+ {
56
+ double area; /* area of the connected component */
57
+ CvScalar value; /* average color of the connected component */
58
+ CvRect rect; /* ROI of the component */
59
+ CvSeq* contour; /* optional component boundary
60
+ (the contour might have child contours corresponding to the holes)*/
61
+ }
62
+ CvConnectedComp;
63
+
64
+ /* Image smooth methods */
65
+ enum
66
+ {
67
+ CV_BLUR_NO_SCALE =0,
68
+ CV_BLUR =1,
69
+ CV_GAUSSIAN =2,
70
+ CV_MEDIAN =3,
71
+ CV_BILATERAL =4
72
+ };
73
+
74
+ /* Filters used in pyramid decomposition */
75
+ enum
76
+ {
77
+ CV_GAUSSIAN_5x5 = 7
78
+ };
79
+
80
+ /* Inpainting algorithms */
81
+ enum
82
+ {
83
+ CV_INPAINT_NS =0,
84
+ CV_INPAINT_TELEA =1
85
+ };
86
+
87
+ /* Special filters */
88
+ enum
89
+ {
90
+ CV_SCHARR =-1,
91
+ CV_MAX_SOBEL_KSIZE =7
92
+ };
93
+
94
+ /* Constants for color conversion */
95
+ enum
96
+ {
97
+ CV_BGR2BGRA =0,
98
+ CV_RGB2RGBA =CV_BGR2BGRA,
99
+
100
+ CV_BGRA2BGR =1,
101
+ CV_RGBA2RGB =CV_BGRA2BGR,
102
+
103
+ CV_BGR2RGBA =2,
104
+ CV_RGB2BGRA =CV_BGR2RGBA,
105
+
106
+ CV_RGBA2BGR =3,
107
+ CV_BGRA2RGB =CV_RGBA2BGR,
108
+
109
+ CV_BGR2RGB =4,
110
+ CV_RGB2BGR =CV_BGR2RGB,
111
+
112
+ CV_BGRA2RGBA =5,
113
+ CV_RGBA2BGRA =CV_BGRA2RGBA,
114
+
115
+ CV_BGR2GRAY =6,
116
+ CV_RGB2GRAY =7,
117
+ CV_GRAY2BGR =8,
118
+ CV_GRAY2RGB =CV_GRAY2BGR,
119
+ CV_GRAY2BGRA =9,
120
+ CV_GRAY2RGBA =CV_GRAY2BGRA,
121
+ CV_BGRA2GRAY =10,
122
+ CV_RGBA2GRAY =11,
123
+
124
+ CV_BGR2BGR565 =12,
125
+ CV_RGB2BGR565 =13,
126
+ CV_BGR5652BGR =14,
127
+ CV_BGR5652RGB =15,
128
+ CV_BGRA2BGR565 =16,
129
+ CV_RGBA2BGR565 =17,
130
+ CV_BGR5652BGRA =18,
131
+ CV_BGR5652RGBA =19,
132
+
133
+ CV_GRAY2BGR565 =20,
134
+ CV_BGR5652GRAY =21,
135
+
136
+ CV_BGR2BGR555 =22,
137
+ CV_RGB2BGR555 =23,
138
+ CV_BGR5552BGR =24,
139
+ CV_BGR5552RGB =25,
140
+ CV_BGRA2BGR555 =26,
141
+ CV_RGBA2BGR555 =27,
142
+ CV_BGR5552BGRA =28,
143
+ CV_BGR5552RGBA =29,
144
+
145
+ CV_GRAY2BGR555 =30,
146
+ CV_BGR5552GRAY =31,
147
+
148
+ CV_BGR2XYZ =32,
149
+ CV_RGB2XYZ =33,
150
+ CV_XYZ2BGR =34,
151
+ CV_XYZ2RGB =35,
152
+
153
+ CV_BGR2YCrCb =36,
154
+ CV_RGB2YCrCb =37,
155
+ CV_YCrCb2BGR =38,
156
+ CV_YCrCb2RGB =39,
157
+
158
+ CV_BGR2HSV =40,
159
+ CV_RGB2HSV =41,
160
+
161
+ CV_BGR2Lab =44,
162
+ CV_RGB2Lab =45,
163
+
164
+ CV_BayerBG2BGR =46,
165
+ CV_BayerGB2BGR =47,
166
+ CV_BayerRG2BGR =48,
167
+ CV_BayerGR2BGR =49,
168
+
169
+ CV_BayerBG2RGB =CV_BayerRG2BGR,
170
+ CV_BayerGB2RGB =CV_BayerGR2BGR,
171
+ CV_BayerRG2RGB =CV_BayerBG2BGR,
172
+ CV_BayerGR2RGB =CV_BayerGB2BGR,
173
+
174
+ CV_BGR2Luv =50,
175
+ CV_RGB2Luv =51,
176
+ CV_BGR2HLS =52,
177
+ CV_RGB2HLS =53,
178
+
179
+ CV_HSV2BGR =54,
180
+ CV_HSV2RGB =55,
181
+
182
+ CV_Lab2BGR =56,
183
+ CV_Lab2RGB =57,
184
+ CV_Luv2BGR =58,
185
+ CV_Luv2RGB =59,
186
+ CV_HLS2BGR =60,
187
+ CV_HLS2RGB =61,
188
+
189
+ CV_BayerBG2BGR_VNG =62,
190
+ CV_BayerGB2BGR_VNG =63,
191
+ CV_BayerRG2BGR_VNG =64,
192
+ CV_BayerGR2BGR_VNG =65,
193
+
194
+ CV_BayerBG2RGB_VNG =CV_BayerRG2BGR_VNG,
195
+ CV_BayerGB2RGB_VNG =CV_BayerGR2BGR_VNG,
196
+ CV_BayerRG2RGB_VNG =CV_BayerBG2BGR_VNG,
197
+ CV_BayerGR2RGB_VNG =CV_BayerGB2BGR_VNG,
198
+
199
+ CV_BGR2HSV_FULL = 66,
200
+ CV_RGB2HSV_FULL = 67,
201
+ CV_BGR2HLS_FULL = 68,
202
+ CV_RGB2HLS_FULL = 69,
203
+
204
+ CV_HSV2BGR_FULL = 70,
205
+ CV_HSV2RGB_FULL = 71,
206
+ CV_HLS2BGR_FULL = 72,
207
+ CV_HLS2RGB_FULL = 73,
208
+
209
+ CV_LBGR2Lab = 74,
210
+ CV_LRGB2Lab = 75,
211
+ CV_LBGR2Luv = 76,
212
+ CV_LRGB2Luv = 77,
213
+
214
+ CV_Lab2LBGR = 78,
215
+ CV_Lab2LRGB = 79,
216
+ CV_Luv2LBGR = 80,
217
+ CV_Luv2LRGB = 81,
218
+
219
+ CV_BGR2YUV = 82,
220
+ CV_RGB2YUV = 83,
221
+ CV_YUV2BGR = 84,
222
+ CV_YUV2RGB = 85,
223
+
224
+ CV_BayerBG2GRAY = 86,
225
+ CV_BayerGB2GRAY = 87,
226
+ CV_BayerRG2GRAY = 88,
227
+ CV_BayerGR2GRAY = 89,
228
+
229
+ CV_YUV420i2RGB = 90,
230
+ CV_YUV420i2BGR = 91,
231
+ CV_YUV420sp2RGB = 92,
232
+ CV_YUV420sp2BGR = 93,
233
+
234
+ CV_COLORCVT_MAX =100
235
+ };
236
+
237
+
238
+ /* Sub-pixel interpolation methods */
239
+ enum
240
+ {
241
+ CV_INTER_NN =0,
242
+ CV_INTER_LINEAR =1,
243
+ CV_INTER_CUBIC =2,
244
+ CV_INTER_AREA =3,
245
+ CV_INTER_LANCZOS4 =4
246
+ };
247
+
248
+ /* ... and other image warping flags */
249
+ enum
250
+ {
251
+ CV_WARP_FILL_OUTLIERS =8,
252
+ CV_WARP_INVERSE_MAP =16
253
+ };
254
+
255
+ /* Shapes of a structuring element for morphological operations */
256
+ enum
257
+ {
258
+ CV_SHAPE_RECT =0,
259
+ CV_SHAPE_CROSS =1,
260
+ CV_SHAPE_ELLIPSE =2,
261
+ CV_SHAPE_CUSTOM =100
262
+ };
263
+
264
+ /* Morphological operations */
265
+ enum
266
+ {
267
+ CV_MOP_ERODE =0,
268
+ CV_MOP_DILATE =1,
269
+ CV_MOP_OPEN =2,
270
+ CV_MOP_CLOSE =3,
271
+ CV_MOP_GRADIENT =4,
272
+ CV_MOP_TOPHAT =5,
273
+ CV_MOP_BLACKHAT =6
274
+ };
275
+
276
+ /* Spatial and central moments */
277
+ typedef struct CvMoments
278
+ {
279
+ double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; /* spatial moments */
280
+ double mu20, mu11, mu02, mu30, mu21, mu12, mu03; /* central moments */
281
+ double inv_sqrt_m00; /* m00 != 0 ? 1/sqrt(m00) : 0 */
282
+ }
283
+ CvMoments;
284
+
285
+ /* Hu invariants */
286
+ typedef struct CvHuMoments
287
+ {
288
+ double hu1, hu2, hu3, hu4, hu5, hu6, hu7; /* Hu invariants */
289
+ }
290
+ CvHuMoments;
291
+
292
+ /* Template matching methods */
293
+ enum
294
+ {
295
+ CV_TM_SQDIFF =0,
296
+ CV_TM_SQDIFF_NORMED =1,
297
+ CV_TM_CCORR =2,
298
+ CV_TM_CCORR_NORMED =3,
299
+ CV_TM_CCOEFF =4,
300
+ CV_TM_CCOEFF_NORMED =5
301
+ };
302
+
303
+ typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param );
304
+
305
+ /* Contour retrieval modes */
306
+ enum
307
+ {
308
+ CV_RETR_EXTERNAL=0,
309
+ CV_RETR_LIST=1,
310
+ CV_RETR_CCOMP=2,
311
+ CV_RETR_TREE=3
312
+ };
313
+
314
+ /* Contour approximation methods */
315
+ enum
316
+ {
317
+ CV_CHAIN_CODE=0,
318
+ CV_CHAIN_APPROX_NONE=1,
319
+ CV_CHAIN_APPROX_SIMPLE=2,
320
+ CV_CHAIN_APPROX_TC89_L1=3,
321
+ CV_CHAIN_APPROX_TC89_KCOS=4,
322
+ CV_LINK_RUNS=5
323
+ };
324
+
325
+ /*
326
+ Internal structure that is used for sequental retrieving contours from the image.
327
+ It supports both hierarchical and plane variants of Suzuki algorithm.
328
+ */
329
+ typedef struct _CvContourScanner* CvContourScanner;
330
+
331
+ /* Freeman chain reader state */
332
+ typedef struct CvChainPtReader
333
+ {
334
+ CV_SEQ_READER_FIELDS()
335
+ char code;
336
+ CvPoint pt;
337
+ schar deltas[8][2];
338
+ }
339
+ CvChainPtReader;
340
+
341
+ /* initializes 8-element array for fast access to 3x3 neighborhood of a pixel */
342
+ #define CV_INIT_3X3_DELTAS( deltas, step, nch ) \
343
+ ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \
344
+ (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \
345
+ (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \
346
+ (deltas)[6] = (step), (deltas)[7] = (step) + (nch))
347
+
348
+
349
+ /****************************************************************************************\
350
+ * Planar subdivisions *
351
+ \****************************************************************************************/
352
+
353
+ typedef size_t CvSubdiv2DEdge;
354
+
355
+ #define CV_QUADEDGE2D_FIELDS() \
356
+ int flags; \
357
+ struct CvSubdiv2DPoint* pt[4]; \
358
+ CvSubdiv2DEdge next[4];
359
+
360
+ #define CV_SUBDIV2D_POINT_FIELDS()\
361
+ int flags; \
362
+ CvSubdiv2DEdge first; \
363
+ CvPoint2D32f pt; \
364
+ int id;
365
+
366
+ #define CV_SUBDIV2D_VIRTUAL_POINT_FLAG (1 << 30)
367
+
368
+ typedef struct CvQuadEdge2D
369
+ {
370
+ CV_QUADEDGE2D_FIELDS()
371
+ }
372
+ CvQuadEdge2D;
373
+
374
+ typedef struct CvSubdiv2DPoint
375
+ {
376
+ CV_SUBDIV2D_POINT_FIELDS()
377
+ }
378
+ CvSubdiv2DPoint;
379
+
380
+ #define CV_SUBDIV2D_FIELDS() \
381
+ CV_GRAPH_FIELDS() \
382
+ int quad_edges; \
383
+ int is_geometry_valid; \
384
+ CvSubdiv2DEdge recent_edge; \
385
+ CvPoint2D32f topleft; \
386
+ CvPoint2D32f bottomright;
387
+
388
+ typedef struct CvSubdiv2D
389
+ {
390
+ CV_SUBDIV2D_FIELDS()
391
+ }
392
+ CvSubdiv2D;
393
+
394
+
395
+ typedef enum CvSubdiv2DPointLocation
396
+ {
397
+ CV_PTLOC_ERROR = -2,
398
+ CV_PTLOC_OUTSIDE_RECT = -1,
399
+ CV_PTLOC_INSIDE = 0,
400
+ CV_PTLOC_VERTEX = 1,
401
+ CV_PTLOC_ON_EDGE = 2
402
+ }
403
+ CvSubdiv2DPointLocation;
404
+
405
+ typedef enum CvNextEdgeType
406
+ {
407
+ CV_NEXT_AROUND_ORG = 0x00,
408
+ CV_NEXT_AROUND_DST = 0x22,
409
+ CV_PREV_AROUND_ORG = 0x11,
410
+ CV_PREV_AROUND_DST = 0x33,
411
+ CV_NEXT_AROUND_LEFT = 0x13,
412
+ CV_NEXT_AROUND_RIGHT = 0x31,
413
+ CV_PREV_AROUND_LEFT = 0x20,
414
+ CV_PREV_AROUND_RIGHT = 0x02
415
+ }
416
+ CvNextEdgeType;
417
+
418
+ /* get the next edge with the same origin point (counterwise) */
419
+ #define CV_SUBDIV2D_NEXT_EDGE( edge ) (((CvQuadEdge2D*)((edge) & ~3))->next[(edge)&3])
420
+
421
+
422
+ /* Contour approximation algorithms */
423
+ enum
424
+ {
425
+ CV_POLY_APPROX_DP = 0
426
+ };
427
+
428
+ /* Shape matching methods */
429
+ enum
430
+ {
431
+ CV_CONTOURS_MATCH_I1 =1,
432
+ CV_CONTOURS_MATCH_I2 =2,
433
+ CV_CONTOURS_MATCH_I3 =3
434
+ };
435
+
436
+ /* Shape orientation */
437
+ enum
438
+ {
439
+ CV_CLOCKWISE =1,
440
+ CV_COUNTER_CLOCKWISE =2
441
+ };
442
+
443
+
444
+ /* Convexity defect */
445
+ typedef struct CvConvexityDefect
446
+ {
447
+ CvPoint* start; /* point of the contour where the defect begins */
448
+ CvPoint* end; /* point of the contour where the defect ends */
449
+ CvPoint* depth_point; /* the farthest from the convex hull point within the defect */
450
+ float depth; /* distance between the farthest point and the convex hull */
451
+ } CvConvexityDefect;
452
+
453
+
454
+ /* Histogram comparison methods */
455
+ enum
456
+ {
457
+ CV_COMP_CORREL =0,
458
+ CV_COMP_CHISQR =1,
459
+ CV_COMP_INTERSECT =2,
460
+ CV_COMP_BHATTACHARYYA =3
461
+ };
462
+
463
+ /* Mask size for distance transform */
464
+ enum
465
+ {
466
+ CV_DIST_MASK_3 =3,
467
+ CV_DIST_MASK_5 =5,
468
+ CV_DIST_MASK_PRECISE =0
469
+ };
470
+
471
+ /* Distance types for Distance Transform and M-estimators */
472
+ enum
473
+ {
474
+ CV_DIST_USER =-1, /* User defined distance */
475
+ CV_DIST_L1 =1, /* distance = |x1-x2| + |y1-y2| */
476
+ CV_DIST_L2 =2, /* the simple euclidean distance */
477
+ CV_DIST_C =3, /* distance = max(|x1-x2|,|y1-y2|) */
478
+ CV_DIST_L12 =4, /* L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) */
479
+ CV_DIST_FAIR =5, /* distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 */
480
+ CV_DIST_WELSCH =6, /* distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 */
481
+ CV_DIST_HUBER =7 /* distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 */
482
+ };
483
+
484
+
485
+ /* Threshold types */
486
+ enum
487
+ {
488
+ CV_THRESH_BINARY =0, /* value = value > threshold ? max_value : 0 */
489
+ CV_THRESH_BINARY_INV =1, /* value = value > threshold ? 0 : max_value */
490
+ CV_THRESH_TRUNC =2, /* value = value > threshold ? threshold : value */
491
+ CV_THRESH_TOZERO =3, /* value = value > threshold ? value : 0 */
492
+ CV_THRESH_TOZERO_INV =4, /* value = value > threshold ? 0 : value */
493
+ CV_THRESH_MASK =7,
494
+ CV_THRESH_OTSU =8 /* use Otsu algorithm to choose the optimal threshold value;
495
+ combine the flag with one of the above CV_THRESH_* values */
496
+ };
497
+
498
+ /* Adaptive threshold methods */
499
+ enum
500
+ {
501
+ CV_ADAPTIVE_THRESH_MEAN_C =0,
502
+ CV_ADAPTIVE_THRESH_GAUSSIAN_C =1
503
+ };
504
+
505
+ /* FloodFill flags */
506
+ enum
507
+ {
508
+ CV_FLOODFILL_FIXED_RANGE =(1 << 16),
509
+ CV_FLOODFILL_MASK_ONLY =(1 << 17)
510
+ };
511
+
512
+
513
+ /* Canny edge detector flags */
514
+ enum
515
+ {
516
+ CV_CANNY_L2_GRADIENT =(1 << 31)
517
+ };
518
+
519
+ /* Variants of a Hough transform */
520
+ enum
521
+ {
522
+ CV_HOUGH_STANDARD =0,
523
+ CV_HOUGH_PROBABILISTIC =1,
524
+ CV_HOUGH_MULTI_SCALE =2,
525
+ CV_HOUGH_GRADIENT =3
526
+ };
527
+
528
+
529
+ /* Fast search data structures */
530
+ struct CvFeatureTree;
531
+ struct CvLSH;
532
+ struct CvLSHOperations;
533
+
534
+ #ifdef __cplusplus
535
+ }
536
+ #endif
537
+
538
+ #endif