00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef __OPENCV_IMGPROC_TYPES_C_H__
00044 #define __OPENCV_IMGPROC_TYPES_C_H__
00045
00046 #include "opencv2/core/core_c.h"
00047 #include "opencv2/imgproc/types_c.h"
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00053
00054 typedef struct CvConnectedComp
00055 {
00056 double area;
00057 CvScalar value;
00058 CvRect rect;
00059 CvSeq* contour;
00060
00061 }
00062 CvConnectedComp;
00063
00064
00065 enum
00066 {
00067 CV_BLUR_NO_SCALE =0,
00068 CV_BLUR =1,
00069 CV_GAUSSIAN =2,
00070 CV_MEDIAN =3,
00071 CV_BILATERAL =4
00072 };
00073
00074
00075 enum
00076 {
00077 CV_GAUSSIAN_5x5 = 7
00078 };
00079
00080
00081 enum
00082 {
00083 CV_INPAINT_NS =0,
00084 CV_INPAINT_TELEA =1
00085 };
00086
00087
00088 enum
00089 {
00090 CV_SCHARR =-1,
00091 CV_MAX_SOBEL_KSIZE =7
00092 };
00093
00094
00095 enum
00096 {
00097 CV_BGR2BGRA =0,
00098 CV_RGB2RGBA =CV_BGR2BGRA,
00099
00100 CV_BGRA2BGR =1,
00101 CV_RGBA2RGB =CV_BGRA2BGR,
00102
00103 CV_BGR2RGBA =2,
00104 CV_RGB2BGRA =CV_BGR2RGBA,
00105
00106 CV_RGBA2BGR =3,
00107 CV_BGRA2RGB =CV_RGBA2BGR,
00108
00109 CV_BGR2RGB =4,
00110 CV_RGB2BGR =CV_BGR2RGB,
00111
00112 CV_BGRA2RGBA =5,
00113 CV_RGBA2BGRA =CV_BGRA2RGBA,
00114
00115 CV_BGR2GRAY =6,
00116 CV_RGB2GRAY =7,
00117 CV_GRAY2BGR =8,
00118 CV_GRAY2RGB =CV_GRAY2BGR,
00119 CV_GRAY2BGRA =9,
00120 CV_GRAY2RGBA =CV_GRAY2BGRA,
00121 CV_BGRA2GRAY =10,
00122 CV_RGBA2GRAY =11,
00123
00124 CV_BGR2BGR565 =12,
00125 CV_RGB2BGR565 =13,
00126 CV_BGR5652BGR =14,
00127 CV_BGR5652RGB =15,
00128 CV_BGRA2BGR565 =16,
00129 CV_RGBA2BGR565 =17,
00130 CV_BGR5652BGRA =18,
00131 CV_BGR5652RGBA =19,
00132
00133 CV_GRAY2BGR565 =20,
00134 CV_BGR5652GRAY =21,
00135
00136 CV_BGR2BGR555 =22,
00137 CV_RGB2BGR555 =23,
00138 CV_BGR5552BGR =24,
00139 CV_BGR5552RGB =25,
00140 CV_BGRA2BGR555 =26,
00141 CV_RGBA2BGR555 =27,
00142 CV_BGR5552BGRA =28,
00143 CV_BGR5552RGBA =29,
00144
00145 CV_GRAY2BGR555 =30,
00146 CV_BGR5552GRAY =31,
00147
00148 CV_BGR2XYZ =32,
00149 CV_RGB2XYZ =33,
00150 CV_XYZ2BGR =34,
00151 CV_XYZ2RGB =35,
00152
00153 CV_BGR2YCrCb =36,
00154 CV_RGB2YCrCb =37,
00155 CV_YCrCb2BGR =38,
00156 CV_YCrCb2RGB =39,
00157
00158 CV_BGR2HSV =40,
00159 CV_RGB2HSV =41,
00160
00161 CV_BGR2Lab =44,
00162 CV_RGB2Lab =45,
00163
00164 CV_BayerBG2BGR =46,
00165 CV_BayerGB2BGR =47,
00166 CV_BayerRG2BGR =48,
00167 CV_BayerGR2BGR =49,
00168
00169 CV_BayerBG2RGB =CV_BayerRG2BGR,
00170 CV_BayerGB2RGB =CV_BayerGR2BGR,
00171 CV_BayerRG2RGB =CV_BayerBG2BGR,
00172 CV_BayerGR2RGB =CV_BayerGB2BGR,
00173
00174 CV_BGR2Luv =50,
00175 CV_RGB2Luv =51,
00176 CV_BGR2HLS =52,
00177 CV_RGB2HLS =53,
00178
00179 CV_HSV2BGR =54,
00180 CV_HSV2RGB =55,
00181
00182 CV_Lab2BGR =56,
00183 CV_Lab2RGB =57,
00184 CV_Luv2BGR =58,
00185 CV_Luv2RGB =59,
00186 CV_HLS2BGR =60,
00187 CV_HLS2RGB =61,
00188
00189 CV_BayerBG2BGR_VNG =62,
00190 CV_BayerGB2BGR_VNG =63,
00191 CV_BayerRG2BGR_VNG =64,
00192 CV_BayerGR2BGR_VNG =65,
00193
00194 CV_BayerBG2RGB_VNG =CV_BayerRG2BGR_VNG,
00195 CV_BayerGB2RGB_VNG =CV_BayerGR2BGR_VNG,
00196 CV_BayerRG2RGB_VNG =CV_BayerBG2BGR_VNG,
00197 CV_BayerGR2RGB_VNG =CV_BayerGB2BGR_VNG,
00198
00199 CV_BGR2HSV_FULL = 66,
00200 CV_RGB2HSV_FULL = 67,
00201 CV_BGR2HLS_FULL = 68,
00202 CV_RGB2HLS_FULL = 69,
00203
00204 CV_HSV2BGR_FULL = 70,
00205 CV_HSV2RGB_FULL = 71,
00206 CV_HLS2BGR_FULL = 72,
00207 CV_HLS2RGB_FULL = 73,
00208
00209 CV_LBGR2Lab = 74,
00210 CV_LRGB2Lab = 75,
00211 CV_LBGR2Luv = 76,
00212 CV_LRGB2Luv = 77,
00213
00214 CV_Lab2LBGR = 78,
00215 CV_Lab2LRGB = 79,
00216 CV_Luv2LBGR = 80,
00217 CV_Luv2LRGB = 81,
00218
00219 CV_BGR2YUV = 82,
00220 CV_RGB2YUV = 83,
00221 CV_YUV2BGR = 84,
00222 CV_YUV2RGB = 85,
00223
00224 CV_COLORCVT_MAX =100
00225 };
00226
00227
00228
00229 enum
00230 {
00231 CV_INTER_NN =0,
00232 CV_INTER_LINEAR =1,
00233 CV_INTER_CUBIC =2,
00234 CV_INTER_AREA =3,
00235 CV_INTER_LANCZOS4 =4
00236 };
00237
00238
00239 enum
00240 {
00241 CV_WARP_FILL_OUTLIERS =8,
00242 CV_WARP_INVERSE_MAP =16
00243 };
00244
00245
00246 enum
00247 {
00248 CV_SHAPE_RECT =0,
00249 CV_SHAPE_CROSS =1,
00250 CV_SHAPE_ELLIPSE =2,
00251 CV_SHAPE_CUSTOM =100
00252 };
00253
00254
00255 enum
00256 {
00257 CV_MOP_ERODE =0,
00258 CV_MOP_DILATE =1,
00259 CV_MOP_OPEN =2,
00260 CV_MOP_CLOSE =3,
00261 CV_MOP_GRADIENT =4,
00262 CV_MOP_TOPHAT =5,
00263 CV_MOP_BLACKHAT =6
00264 };
00265
00266
00267 typedef struct CvMoments
00268 {
00269 double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
00270 double mu20, mu11, mu02, mu30, mu21, mu12, mu03;
00271 double inv_sqrt_m00;
00272 }
00273 CvMoments;
00274
00275
00276 typedef struct CvHuMoments
00277 {
00278 double hu1, hu2, hu3, hu4, hu5, hu6, hu7;
00279 }
00280 CvHuMoments;
00281
00282
00283 enum
00284 {
00285 CV_TM_SQDIFF =0,
00286 CV_TM_SQDIFF_NORMED =1,
00287 CV_TM_CCORR =2,
00288 CV_TM_CCORR_NORMED =3,
00289 CV_TM_CCOEFF =4,
00290 CV_TM_CCOEFF_NORMED =5
00291 };
00292
00293 typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param );
00294
00295
00296 enum
00297 {
00298 CV_RETR_EXTERNAL=0,
00299 CV_RETR_LIST=1,
00300 CV_RETR_CCOMP=2,
00301 CV_RETR_TREE=3
00302 };
00303
00304
00305 enum
00306 {
00307 CV_CHAIN_CODE=0,
00308 CV_CHAIN_APPROX_NONE=1,
00309 CV_CHAIN_APPROX_SIMPLE=2,
00310 CV_CHAIN_APPROX_TC89_L1=3,
00311 CV_CHAIN_APPROX_TC89_KCOS=4,
00312 CV_LINK_RUNS=5
00313 };
00314
00315
00316
00317
00318
00319 typedef struct _CvContourScanner* CvContourScanner;
00320
00321
00322 typedef struct CvChainPtReader
00323 {
00324 CV_SEQ_READER_FIELDS()
00325 char code;
00326 CvPoint pt;
00327 schar deltas[8][2];
00328 }
00329 CvChainPtReader;
00330
00331
00332 #define CV_INIT_3X3_DELTAS( deltas, step, nch ) \
00333 ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \
00334 (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \
00335 (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \
00336 (deltas)[6] = (step), (deltas)[7] = (step) + (nch))
00337
00338
00339
00340
00341
00342
00343 typedef size_t CvSubdiv2DEdge;
00344
00345 #define CV_QUADEDGE2D_FIELDS() \
00346 int flags; \
00347 struct CvSubdiv2DPoint* pt[4]; \
00348 CvSubdiv2DEdge next[4];
00349
00350 #define CV_SUBDIV2D_POINT_FIELDS()\
00351 int flags; \
00352 CvSubdiv2DEdge first; \
00353 CvPoint2D32f pt; \
00354 int id;
00355
00356 #define CV_SUBDIV2D_VIRTUAL_POINT_FLAG (1 << 30)
00357
00358 typedef struct CvQuadEdge2D
00359 {
00360 CV_QUADEDGE2D_FIELDS()
00361 }
00362 CvQuadEdge2D;
00363
00364 typedef struct CvSubdiv2DPoint
00365 {
00366 CV_SUBDIV2D_POINT_FIELDS()
00367 }
00368 CvSubdiv2DPoint;
00369
00370 #define CV_SUBDIV2D_FIELDS() \
00371 CV_GRAPH_FIELDS() \
00372 int quad_edges; \
00373 int is_geometry_valid; \
00374 CvSubdiv2DEdge recent_edge; \
00375 CvPoint2D32f topleft; \
00376 CvPoint2D32f bottomright;
00377
00378 typedef struct CvSubdiv2D
00379 {
00380 CV_SUBDIV2D_FIELDS()
00381 }
00382 CvSubdiv2D;
00383
00384
00385 typedef enum CvSubdiv2DPointLocation
00386 {
00387 CV_PTLOC_ERROR = -2,
00388 CV_PTLOC_OUTSIDE_RECT = -1,
00389 CV_PTLOC_INSIDE = 0,
00390 CV_PTLOC_VERTEX = 1,
00391 CV_PTLOC_ON_EDGE = 2
00392 }
00393 CvSubdiv2DPointLocation;
00394
00395 typedef enum CvNextEdgeType
00396 {
00397 CV_NEXT_AROUND_ORG = 0x00,
00398 CV_NEXT_AROUND_DST = 0x22,
00399 CV_PREV_AROUND_ORG = 0x11,
00400 CV_PREV_AROUND_DST = 0x33,
00401 CV_NEXT_AROUND_LEFT = 0x13,
00402 CV_NEXT_AROUND_RIGHT = 0x31,
00403 CV_PREV_AROUND_LEFT = 0x20,
00404 CV_PREV_AROUND_RIGHT = 0x02
00405 }
00406 CvNextEdgeType;
00407
00408
00409 #define CV_SUBDIV2D_NEXT_EDGE( edge ) (((CvQuadEdge2D*)((edge) & ~3))->next[(edge)&3])
00410
00411
00412
00413 enum
00414 {
00415 CV_POLY_APPROX_DP = 0
00416 };
00417
00418
00419 enum
00420 {
00421 CV_CONTOURS_MATCH_I1 =1,
00422 CV_CONTOURS_MATCH_I2 =2,
00423 CV_CONTOURS_MATCH_I3 =3
00424 };
00425
00426
00427 enum
00428 {
00429 CV_CLOCKWISE =1,
00430 CV_COUNTER_CLOCKWISE =2
00431 };
00432
00433
00434
00435 typedef struct CvConvexityDefect
00436 {
00437 CvPoint* start;
00438 CvPoint* end;
00439 CvPoint* depth_point;
00440 float depth;
00441 } CvConvexityDefect;
00442
00443
00444
00445 enum
00446 {
00447 CV_COMP_CORREL =0,
00448 CV_COMP_CHISQR =1,
00449 CV_COMP_INTERSECT =2,
00450 CV_COMP_BHATTACHARYYA =3
00451 };
00452
00453
00454 enum
00455 {
00456 CV_DIST_MASK_3 =3,
00457 CV_DIST_MASK_5 =5,
00458 CV_DIST_MASK_PRECISE =0
00459 };
00460
00461
00462 enum
00463 {
00464 CV_DIST_USER =-1,
00465 CV_DIST_L1 =1,
00466 CV_DIST_L2 =2,
00467 CV_DIST_C =3,
00468 CV_DIST_L12 =4,
00469 CV_DIST_FAIR =5,
00470 CV_DIST_WELSCH =6,
00471 CV_DIST_HUBER =7
00472 };
00473
00474
00475
00476 enum
00477 {
00478 CV_THRESH_BINARY =0,
00479 CV_THRESH_BINARY_INV =1,
00480 CV_THRESH_TRUNC =2,
00481 CV_THRESH_TOZERO =3,
00482 CV_THRESH_TOZERO_INV =4,
00483 CV_THRESH_MASK =7,
00484 CV_THRESH_OTSU =8
00485
00486 };
00487
00488
00489 enum
00490 {
00491 CV_ADAPTIVE_THRESH_MEAN_C =0,
00492 CV_ADAPTIVE_THRESH_GAUSSIAN_C =1
00493 };
00494
00495
00496 enum
00497 {
00498 CV_FLOODFILL_FIXED_RANGE =(1 << 16),
00499 CV_FLOODFILL_MASK_ONLY =(1 << 17)
00500 };
00501
00502
00503
00504 enum
00505 {
00506 CV_CANNY_L2_GRADIENT =(1 << 31)
00507 };
00508
00509
00510 enum
00511 {
00512 CV_HOUGH_STANDARD =0,
00513 CV_HOUGH_PROBABILISTIC =1,
00514 CV_HOUGH_MULTI_SCALE =2,
00515 CV_HOUGH_GRADIENT =3
00516 };
00517
00518
00519
00520 struct CvFeatureTree;
00521 struct CvLSH;
00522 struct CvLSHOperations;
00523
00524 #ifdef __cplusplus
00525 }
00526 #endif
00527
00528 #endif