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_BayerBG2GRAY = 86,
00225 CV_BayerGB2GRAY = 87,
00226 CV_BayerRG2GRAY = 88,
00227 CV_BayerGR2GRAY = 89,
00228
00229 CV_YUV420i2RGB = 90,
00230 CV_YUV420i2BGR = 91,
00231
00232 CV_COLORCVT_MAX =100
00233 };
00234
00235
00236
00237 enum
00238 {
00239 CV_INTER_NN =0,
00240 CV_INTER_LINEAR =1,
00241 CV_INTER_CUBIC =2,
00242 CV_INTER_AREA =3,
00243 CV_INTER_LANCZOS4 =4
00244 };
00245
00246
00247 enum
00248 {
00249 CV_WARP_FILL_OUTLIERS =8,
00250 CV_WARP_INVERSE_MAP =16
00251 };
00252
00253
00254 enum
00255 {
00256 CV_SHAPE_RECT =0,
00257 CV_SHAPE_CROSS =1,
00258 CV_SHAPE_ELLIPSE =2,
00259 CV_SHAPE_CUSTOM =100
00260 };
00261
00262
00263 enum
00264 {
00265 CV_MOP_ERODE =0,
00266 CV_MOP_DILATE =1,
00267 CV_MOP_OPEN =2,
00268 CV_MOP_CLOSE =3,
00269 CV_MOP_GRADIENT =4,
00270 CV_MOP_TOPHAT =5,
00271 CV_MOP_BLACKHAT =6
00272 };
00273
00274
00275 typedef struct CvMoments
00276 {
00277 double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
00278 double mu20, mu11, mu02, mu30, mu21, mu12, mu03;
00279 double inv_sqrt_m00;
00280 }
00281 CvMoments;
00282
00283
00284 typedef struct CvHuMoments
00285 {
00286 double hu1, hu2, hu3, hu4, hu5, hu6, hu7;
00287 }
00288 CvHuMoments;
00289
00290
00291 enum
00292 {
00293 CV_TM_SQDIFF =0,
00294 CV_TM_SQDIFF_NORMED =1,
00295 CV_TM_CCORR =2,
00296 CV_TM_CCORR_NORMED =3,
00297 CV_TM_CCOEFF =4,
00298 CV_TM_CCOEFF_NORMED =5
00299 };
00300
00301 typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param );
00302
00303
00304 enum
00305 {
00306 CV_RETR_EXTERNAL=0,
00307 CV_RETR_LIST=1,
00308 CV_RETR_CCOMP=2,
00309 CV_RETR_TREE=3
00310 };
00311
00312
00313 enum
00314 {
00315 CV_CHAIN_CODE=0,
00316 CV_CHAIN_APPROX_NONE=1,
00317 CV_CHAIN_APPROX_SIMPLE=2,
00318 CV_CHAIN_APPROX_TC89_L1=3,
00319 CV_CHAIN_APPROX_TC89_KCOS=4,
00320 CV_LINK_RUNS=5
00321 };
00322
00323
00324
00325
00326
00327 typedef struct _CvContourScanner* CvContourScanner;
00328
00329
00330 typedef struct CvChainPtReader
00331 {
00332 CV_SEQ_READER_FIELDS()
00333 char code;
00334 CvPoint pt;
00335 schar deltas[8][2];
00336 }
00337 CvChainPtReader;
00338
00339
00340 #define CV_INIT_3X3_DELTAS( deltas, step, nch ) \
00341 ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \
00342 (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \
00343 (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \
00344 (deltas)[6] = (step), (deltas)[7] = (step) + (nch))
00345
00346
00347
00348
00349
00350
00351 typedef size_t CvSubdiv2DEdge;
00352
00353 #define CV_QUADEDGE2D_FIELDS() \
00354 int flags; \
00355 struct CvSubdiv2DPoint* pt[4]; \
00356 CvSubdiv2DEdge next[4];
00357
00358 #define CV_SUBDIV2D_POINT_FIELDS()\
00359 int flags; \
00360 CvSubdiv2DEdge first; \
00361 CvPoint2D32f pt; \
00362 int id;
00363
00364 #define CV_SUBDIV2D_VIRTUAL_POINT_FLAG (1 << 30)
00365
00366 typedef struct CvQuadEdge2D
00367 {
00368 CV_QUADEDGE2D_FIELDS()
00369 }
00370 CvQuadEdge2D;
00371
00372 typedef struct CvSubdiv2DPoint
00373 {
00374 CV_SUBDIV2D_POINT_FIELDS()
00375 }
00376 CvSubdiv2DPoint;
00377
00378 #define CV_SUBDIV2D_FIELDS() \
00379 CV_GRAPH_FIELDS() \
00380 int quad_edges; \
00381 int is_geometry_valid; \
00382 CvSubdiv2DEdge recent_edge; \
00383 CvPoint2D32f topleft; \
00384 CvPoint2D32f bottomright;
00385
00386 typedef struct CvSubdiv2D
00387 {
00388 CV_SUBDIV2D_FIELDS()
00389 }
00390 CvSubdiv2D;
00391
00392
00393 typedef enum CvSubdiv2DPointLocation
00394 {
00395 CV_PTLOC_ERROR = -2,
00396 CV_PTLOC_OUTSIDE_RECT = -1,
00397 CV_PTLOC_INSIDE = 0,
00398 CV_PTLOC_VERTEX = 1,
00399 CV_PTLOC_ON_EDGE = 2
00400 }
00401 CvSubdiv2DPointLocation;
00402
00403 typedef enum CvNextEdgeType
00404 {
00405 CV_NEXT_AROUND_ORG = 0x00,
00406 CV_NEXT_AROUND_DST = 0x22,
00407 CV_PREV_AROUND_ORG = 0x11,
00408 CV_PREV_AROUND_DST = 0x33,
00409 CV_NEXT_AROUND_LEFT = 0x13,
00410 CV_NEXT_AROUND_RIGHT = 0x31,
00411 CV_PREV_AROUND_LEFT = 0x20,
00412 CV_PREV_AROUND_RIGHT = 0x02
00413 }
00414 CvNextEdgeType;
00415
00416
00417 #define CV_SUBDIV2D_NEXT_EDGE( edge ) (((CvQuadEdge2D*)((edge) & ~3))->next[(edge)&3])
00418
00419
00420
00421 enum
00422 {
00423 CV_POLY_APPROX_DP = 0
00424 };
00425
00426
00427 enum
00428 {
00429 CV_CONTOURS_MATCH_I1 =1,
00430 CV_CONTOURS_MATCH_I2 =2,
00431 CV_CONTOURS_MATCH_I3 =3
00432 };
00433
00434
00435 enum
00436 {
00437 CV_CLOCKWISE =1,
00438 CV_COUNTER_CLOCKWISE =2
00439 };
00440
00441
00442
00443 typedef struct CvConvexityDefect
00444 {
00445 CvPoint* start;
00446 CvPoint* end;
00447 CvPoint* depth_point;
00448 float depth;
00449 } CvConvexityDefect;
00450
00451
00452
00453 enum
00454 {
00455 CV_COMP_CORREL =0,
00456 CV_COMP_CHISQR =1,
00457 CV_COMP_INTERSECT =2,
00458 CV_COMP_BHATTACHARYYA =3
00459 };
00460
00461
00462 enum
00463 {
00464 CV_DIST_MASK_3 =3,
00465 CV_DIST_MASK_5 =5,
00466 CV_DIST_MASK_PRECISE =0
00467 };
00468
00469
00470 enum
00471 {
00472 CV_DIST_USER =-1,
00473 CV_DIST_L1 =1,
00474 CV_DIST_L2 =2,
00475 CV_DIST_C =3,
00476 CV_DIST_L12 =4,
00477 CV_DIST_FAIR =5,
00478 CV_DIST_WELSCH =6,
00479 CV_DIST_HUBER =7
00480 };
00481
00482
00483
00484 enum
00485 {
00486 CV_THRESH_BINARY =0,
00487 CV_THRESH_BINARY_INV =1,
00488 CV_THRESH_TRUNC =2,
00489 CV_THRESH_TOZERO =3,
00490 CV_THRESH_TOZERO_INV =4,
00491 CV_THRESH_MASK =7,
00492 CV_THRESH_OTSU =8
00493
00494 };
00495
00496
00497 enum
00498 {
00499 CV_ADAPTIVE_THRESH_MEAN_C =0,
00500 CV_ADAPTIVE_THRESH_GAUSSIAN_C =1
00501 };
00502
00503
00504 enum
00505 {
00506 CV_FLOODFILL_FIXED_RANGE =(1 << 16),
00507 CV_FLOODFILL_MASK_ONLY =(1 << 17)
00508 };
00509
00510
00511
00512 enum
00513 {
00514 CV_CANNY_L2_GRADIENT =(1 << 31)
00515 };
00516
00517
00518 enum
00519 {
00520 CV_HOUGH_STANDARD =0,
00521 CV_HOUGH_PROBABILISTIC =1,
00522 CV_HOUGH_MULTI_SCALE =2,
00523 CV_HOUGH_GRADIENT =3
00524 };
00525
00526
00527
00528 struct CvFeatureTree;
00529 struct CvLSH;
00530 struct CvLSHOperations;
00531
00532 #ifdef __cplusplus
00533 }
00534 #endif
00535
00536 #endif