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_IMGPROC_C_H__
00044 #define __OPENCV_IMGPROC_IMGPROC_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
00055
00056 CVAPI(void) cvAcc( const CvArr* image, CvArr* sum,
00057 const CvArr* mask CV_DEFAULT(NULL) );
00058
00059
00060 CVAPI(void) cvSquareAcc( const CvArr* image, CvArr* sqsum,
00061 const CvArr* mask CV_DEFAULT(NULL) );
00062
00063
00064 CVAPI(void) cvMultiplyAcc( const CvArr* image1, const CvArr* image2, CvArr* acc,
00065 const CvArr* mask CV_DEFAULT(NULL) );
00066
00067
00068 CVAPI(void) cvRunningAvg( const CvArr* image, CvArr* acc, double alpha,
00069 const CvArr* mask CV_DEFAULT(NULL) );
00070
00071
00072
00073
00074
00075
00076
00077 CVAPI(void) cvCopyMakeBorder( const CvArr* src, CvArr* dst, CvPoint offset,
00078 int bordertype, CvScalar value CV_DEFAULT(cvScalarAll(0)));
00079
00080
00081 CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst,
00082 int smoothtype CV_DEFAULT(CV_GAUSSIAN),
00083 int size1 CV_DEFAULT(3),
00084 int size2 CV_DEFAULT(0),
00085 double sigma1 CV_DEFAULT(0),
00086 double sigma2 CV_DEFAULT(0));
00087
00088
00089 CVAPI(void) cvFilter2D( const CvArr* src, CvArr* dst, const CvMat* kernel,
00090 CvPoint anchor CV_DEFAULT(cvPoint(-1,-1)));
00091
00092
00093 CVAPI(void) cvIntegral( const CvArr* image, CvArr* sum,
00094 CvArr* sqsum CV_DEFAULT(NULL),
00095 CvArr* tilted_sum CV_DEFAULT(NULL));
00096
00097
00098
00099
00100
00101
00102 CVAPI(void) cvPyrDown( const CvArr* src, CvArr* dst,
00103 int filter CV_DEFAULT(CV_GAUSSIAN_5x5) );
00104
00105
00106
00107
00108
00109
00110 CVAPI(void) cvPyrUp( const CvArr* src, CvArr* dst,
00111 int filter CV_DEFAULT(CV_GAUSSIAN_5x5) );
00112
00113
00114 CVAPI(CvMat**) cvCreatePyramid( const CvArr* img, int extra_layers, double rate,
00115 const CvSize* layer_sizes CV_DEFAULT(0),
00116 CvArr* bufarr CV_DEFAULT(0),
00117 int calc CV_DEFAULT(1),
00118 int filter CV_DEFAULT(CV_GAUSSIAN_5x5) );
00119
00120
00121 CVAPI(void) cvReleasePyramid( CvMat*** pyramid, int extra_layers );
00122
00123
00124
00125 CVAPI(void) cvPyrMeanShiftFiltering( const CvArr* src, CvArr* dst,
00126 double sp, double sr, int max_level CV_DEFAULT(1),
00127 CvTermCriteria termcrit CV_DEFAULT(cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,5,1)));
00128
00129
00130 CVAPI(void) cvWatershed( const CvArr* image, CvArr* markers );
00131
00132
00133
00134
00135 CVAPI(void) cvSobel( const CvArr* src, CvArr* dst,
00136 int xorder, int yorder,
00137 int aperture_size CV_DEFAULT(3));
00138
00139
00140 CVAPI(void) cvLaplace( const CvArr* src, CvArr* dst,
00141 int aperture_size CV_DEFAULT(3) );
00142
00143
00144 CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code );
00145
00146
00147
00148 CVAPI(void) cvResize( const CvArr* src, CvArr* dst,
00149 int interpolation CV_DEFAULT( CV_INTER_LINEAR ));
00150
00151
00152 CVAPI(void) cvWarpAffine( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
00153 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00154 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00155
00156
00157 CVAPI(CvMat*) cvGetAffineTransform( const CvPoint2D32f * src,
00158 const CvPoint2D32f * dst,
00159 CvMat * map_matrix );
00160
00161
00162 CVAPI(CvMat*) cv2DRotationMatrix( CvPoint2D32f center, double angle,
00163 double scale, CvMat* map_matrix );
00164
00165
00166 CVAPI(void) cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
00167 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00168 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00169
00170
00171 CVAPI(CvMat*) cvGetPerspectiveTransform( const CvPoint2D32f* src,
00172 const CvPoint2D32f* dst,
00173 CvMat* map_matrix );
00174
00175
00176 CVAPI(void) cvRemap( const CvArr* src, CvArr* dst,
00177 const CvArr* mapx, const CvArr* mapy,
00178 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00179 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00180
00181
00182 CVAPI(void) cvConvertMaps( const CvArr* mapx, const CvArr* mapy,
00183 CvArr* mapxy, CvArr* mapalpha );
00184
00185
00186 CVAPI(void) cvLogPolar( const CvArr* src, CvArr* dst,
00187 CvPoint2D32f center, double M,
00188 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
00189
00190
00191 CVAPI(void) cvLinearPolar( const CvArr* src, CvArr* dst,
00192 CvPoint2D32f center, double maxRadius,
00193 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
00194
00195
00196 CVAPI(void) cvUndistort2( const CvArr* src, CvArr* dst,
00197 const CvMat* camera_matrix,
00198 const CvMat* distortion_coeffs,
00199 const CvMat* new_camera_matrix CV_DEFAULT(0) );
00200
00201
00202
00203 CVAPI(void) cvInitUndistortMap( const CvMat* camera_matrix,
00204 const CvMat* distortion_coeffs,
00205 CvArr* mapx, CvArr* mapy );
00206
00207
00208 CVAPI(void) cvInitUndistortRectifyMap( const CvMat* camera_matrix,
00209 const CvMat* dist_coeffs,
00210 const CvMat *R, const CvMat* new_camera_matrix,
00211 CvArr* mapx, CvArr* mapy );
00212
00213
00214
00215 CVAPI(void) cvUndistortPoints( const CvMat* src, CvMat* dst,
00216 const CvMat* camera_matrix,
00217 const CvMat* dist_coeffs,
00218 const CvMat* R CV_DEFAULT(0),
00219 const CvMat* P CV_DEFAULT(0));
00220
00221
00222 CVAPI(IplConvKernel*) cvCreateStructuringElementEx(
00223 int cols, int rows, int anchor_x, int anchor_y,
00224 int shape, int* values CV_DEFAULT(NULL) );
00225
00226
00227 CVAPI(void) cvReleaseStructuringElement( IplConvKernel** element );
00228
00229
00230
00231 CVAPI(void) cvErode( const CvArr* src, CvArr* dst,
00232 IplConvKernel* element CV_DEFAULT(NULL),
00233 int iterations CV_DEFAULT(1) );
00234
00235
00236
00237 CVAPI(void) cvDilate( const CvArr* src, CvArr* dst,
00238 IplConvKernel* element CV_DEFAULT(NULL),
00239 int iterations CV_DEFAULT(1) );
00240
00241
00242 CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst,
00243 CvArr* temp, IplConvKernel* element,
00244 int operation, int iterations CV_DEFAULT(1) );
00245
00246
00247 CVAPI(void) cvMoments( const CvArr* arr, CvMoments* moments, int binary CV_DEFAULT(0));
00248
00249
00250 CVAPI(double) cvGetSpatialMoment( CvMoments* moments, int x_order, int y_order );
00251 CVAPI(double) cvGetCentralMoment( CvMoments* moments, int x_order, int y_order );
00252 CVAPI(double) cvGetNormalizedCentralMoment( CvMoments* moments,
00253 int x_order, int y_order );
00254
00255
00256 CVAPI(void) cvGetHuMoments( CvMoments* moments, CvHuMoments* hu_moments );
00257
00258
00259
00260
00261
00262 CVAPI(int) cvSampleLine( const CvArr* image, CvPoint pt1, CvPoint pt2, void* buffer,
00263 int connectivity CV_DEFAULT(8));
00264
00265
00266
00267
00268 CVAPI(void) cvGetRectSubPix( const CvArr* src, CvArr* dst, CvPoint2D32f center );
00269
00270
00271
00272
00273
00274
00275
00276 CVAPI(void) cvGetQuadrangleSubPix( const CvArr* src, CvArr* dst,
00277 const CvMat* map_matrix );
00278
00279
00280
00281 CVAPI(void) cvMatchTemplate( const CvArr* image, const CvArr* templ,
00282 CvArr* result, int method );
00283
00284
00285
00286 CVAPI(float) cvCalcEMD2( const CvArr* signature1,
00287 const CvArr* signature2,
00288 int distance_type,
00289 CvDistanceFunction distance_func CV_DEFAULT(NULL),
00290 const CvArr* cost_matrix CV_DEFAULT(NULL),
00291 CvArr* flow CV_DEFAULT(NULL),
00292 float* lower_bound CV_DEFAULT(NULL),
00293 void* userdata CV_DEFAULT(NULL));
00294
00295
00296
00297
00298
00299
00300
00301 CVAPI(int) cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,
00302 int header_size CV_DEFAULT(sizeof(CvContour)),
00303 int mode CV_DEFAULT(CV_RETR_LIST),
00304 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00305 CvPoint offset CV_DEFAULT(cvPoint(0,0)));
00306
00307
00308
00309
00310
00311
00312 CVAPI(CvContourScanner) cvStartFindContours( CvArr* image, CvMemStorage* storage,
00313 int header_size CV_DEFAULT(sizeof(CvContour)),
00314 int mode CV_DEFAULT(CV_RETR_LIST),
00315 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00316 CvPoint offset CV_DEFAULT(cvPoint(0,0)));
00317
00318
00319 CVAPI(CvSeq*) cvFindNextContour( CvContourScanner scanner );
00320
00321
00322
00323
00324 CVAPI(void) cvSubstituteContour( CvContourScanner scanner, CvSeq* new_contour );
00325
00326
00327
00328 CVAPI(CvSeq*) cvEndFindContours( CvContourScanner* scanner );
00329
00330
00331 CVAPI(CvSeq*) cvApproxChains( CvSeq* src_seq, CvMemStorage* storage,
00332 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00333 double parameter CV_DEFAULT(0),
00334 int minimal_perimeter CV_DEFAULT(0),
00335 int recursive CV_DEFAULT(0));
00336
00337
00338
00339
00340 CVAPI(void) cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );
00341
00342
00343 CVAPI(CvPoint) cvReadChainPoint( CvChainPtReader* reader );
00344
00345
00346
00347
00348
00349
00350
00351
00352 CVAPI(CvSeq*) cvApproxPoly( const void* src_seq,
00353 int header_size, CvMemStorage* storage,
00354 int method, double eps,
00355 int recursive CV_DEFAULT(0));
00356
00357
00358 CVAPI(double) cvArcLength( const void* curve,
00359 CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
00360 int is_closed CV_DEFAULT(-1));
00361
00362 CV_INLINE double cvContourPerimeter( const void* contour )
00363 {
00364 return cvArcLength( contour, CV_WHOLE_SEQ, 1 );
00365 }
00366
00367
00368
00369
00370 CVAPI(CvRect) cvBoundingRect( CvArr* points, int update CV_DEFAULT(0) );
00371
00372
00373 CVAPI(double) cvContourArea( const CvArr* contour,
00374 CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
00375 int oriented CV_DEFAULT(0));
00376
00377
00378 CVAPI(CvBox2D) cvMinAreaRect2( const CvArr* points,
00379 CvMemStorage* storage CV_DEFAULT(NULL));
00380
00381
00382 CVAPI(int) cvMinEnclosingCircle( const CvArr* points,
00383 CvPoint2D32f* center, float* radius );
00384
00385
00386 CVAPI(double) cvMatchShapes( const void* object1, const void* object2,
00387 int method, double parameter CV_DEFAULT(0));
00388
00389
00390 CVAPI(CvSeq*) cvConvexHull2( const CvArr* input,
00391 void* hull_storage CV_DEFAULT(NULL),
00392 int orientation CV_DEFAULT(CV_CLOCKWISE),
00393 int return_points CV_DEFAULT(0));
00394
00395
00396 CVAPI(int) cvCheckContourConvexity( const CvArr* contour );
00397
00398
00399
00400 CVAPI(CvSeq*) cvConvexityDefects( const CvArr* contour, const CvArr* convexhull,
00401 CvMemStorage* storage CV_DEFAULT(NULL));
00402
00403
00404 CVAPI(CvBox2D) cvFitEllipse2( const CvArr* points );
00405
00406
00407 CVAPI(CvRect) cvMaxRect( const CvRect* rect1, const CvRect* rect2 );
00408
00409
00410 CVAPI(void) cvBoxPoints( CvBox2D box, CvPoint2D32f pt[4] );
00411
00412
00413
00414 CVAPI(CvSeq*) cvPointSeqFromMat( int seq_kind, const CvArr* mat,
00415 CvContour* contour_header,
00416 CvSeqBlock* block );
00417
00418
00419
00420
00421
00422 CVAPI(double) cvPointPolygonTest( const CvArr* contour,
00423 CvPoint2D32f pt, int measure_dist );
00424
00425
00426
00427
00428
00429
00430 CVAPI(CvHistogram*) cvCreateHist( int dims, int* sizes, int type,
00431 float** ranges CV_DEFAULT(NULL),
00432 int uniform CV_DEFAULT(1));
00433
00434
00435 CVAPI(void) cvSetHistBinRanges( CvHistogram* hist, float** ranges,
00436 int uniform CV_DEFAULT(1));
00437
00438
00439 CVAPI(CvHistogram*) cvMakeHistHeaderForArray(
00440 int dims, int* sizes, CvHistogram* hist,
00441 float* data, float** ranges CV_DEFAULT(NULL),
00442 int uniform CV_DEFAULT(1));
00443
00444
00445 CVAPI(void) cvReleaseHist( CvHistogram** hist );
00446
00447
00448 CVAPI(void) cvClearHist( CvHistogram* hist );
00449
00450
00451 CVAPI(void) cvGetMinMaxHistValue( const CvHistogram* hist,
00452 float* min_value, float* max_value,
00453 int* min_idx CV_DEFAULT(NULL),
00454 int* max_idx CV_DEFAULT(NULL));
00455
00456
00457
00458
00459 CVAPI(void) cvNormalizeHist( CvHistogram* hist, double factor );
00460
00461
00462
00463 CVAPI(void) cvThreshHist( CvHistogram* hist, double threshold );
00464
00465
00466
00467 CVAPI(double) cvCompareHist( const CvHistogram* hist1,
00468 const CvHistogram* hist2,
00469 int method);
00470
00471
00472
00473 CVAPI(void) cvCopyHist( const CvHistogram* src, CvHistogram** dst );
00474
00475
00476
00477
00478 CVAPI(void) cvCalcBayesianProb( CvHistogram** src, int number,
00479 CvHistogram** dst);
00480
00481
00482 CVAPI(void) cvCalcArrHist( CvArr** arr, CvHistogram* hist,
00483 int accumulate CV_DEFAULT(0),
00484 const CvArr* mask CV_DEFAULT(NULL) );
00485
00486 CV_INLINE void cvCalcHist( IplImage** image, CvHistogram* hist,
00487 int accumulate CV_DEFAULT(0),
00488 const CvArr* mask CV_DEFAULT(NULL) )
00489 {
00490 cvCalcArrHist( (CvArr**)image, hist, accumulate, mask );
00491 }
00492
00493
00494 CVAPI(void) cvCalcArrBackProject( CvArr** image, CvArr* dst,
00495 const CvHistogram* hist );
00496 #define cvCalcBackProject(image, dst, hist) cvCalcArrBackProject((CvArr**)image, dst, hist)
00497
00498
00499
00500
00501 CVAPI(void) cvCalcArrBackProjectPatch( CvArr** image, CvArr* dst, CvSize range,
00502 CvHistogram* hist, int method,
00503 double factor );
00504 #define cvCalcBackProjectPatch( image, dst, range, hist, method, factor ) \
00505 cvCalcArrBackProjectPatch( (CvArr**)image, dst, range, hist, method, factor )
00506
00507
00508
00509 CVAPI(void) cvCalcProbDensity( const CvHistogram* hist1, const CvHistogram* hist2,
00510 CvHistogram* dst_hist, double scale CV_DEFAULT(255) );
00511
00512
00513 CVAPI(void) cvEqualizeHist( const CvArr* src, CvArr* dst );
00514
00515
00516
00517 CVAPI(void) cvDistTransform( const CvArr* src, CvArr* dst,
00518 int distance_type CV_DEFAULT(CV_DIST_L2),
00519 int mask_size CV_DEFAULT(3),
00520 const float* mask CV_DEFAULT(NULL),
00521 CvArr* labels CV_DEFAULT(NULL),
00522 int labelType CV_DEFAULT(CV_DIST_LABEL_CCOMP));
00523
00524
00525
00526
00527 CVAPI(double) cvThreshold( const CvArr* src, CvArr* dst,
00528 double threshold, double max_value,
00529 int threshold_type );
00530
00531
00532
00533
00534
00535
00536 CVAPI(void) cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,
00537 int adaptive_method CV_DEFAULT(CV_ADAPTIVE_THRESH_MEAN_C),
00538 int threshold_type CV_DEFAULT(CV_THRESH_BINARY),
00539 int block_size CV_DEFAULT(3),
00540 double param1 CV_DEFAULT(5));
00541
00542
00543 CVAPI(void) cvFloodFill( CvArr* image, CvPoint seed_point,
00544 CvScalar new_val, CvScalar lo_diff CV_DEFAULT(cvScalarAll(0)),
00545 CvScalar up_diff CV_DEFAULT(cvScalarAll(0)),
00546 CvConnectedComp* comp CV_DEFAULT(NULL),
00547 int flags CV_DEFAULT(4),
00548 CvArr* mask CV_DEFAULT(NULL));
00549
00550
00551
00552
00553
00554
00555 CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1,
00556 double threshold2, int aperture_size CV_DEFAULT(3) );
00557
00558
00559
00560
00561 CVAPI(void) cvPreCornerDetect( const CvArr* image, CvArr* corners,
00562 int aperture_size CV_DEFAULT(3) );
00563
00564
00565
00566 CVAPI(void) cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
00567 int block_size, int aperture_size CV_DEFAULT(3) );
00568
00569
00570
00571 CVAPI(void) cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval,
00572 int block_size, int aperture_size CV_DEFAULT(3) );
00573
00574
00575
00576 CVAPI(void) cvCornerHarris( const CvArr* image, CvArr* harris_responce,
00577 int block_size, int aperture_size CV_DEFAULT(3),
00578 double k CV_DEFAULT(0.04) );
00579
00580
00581 CVAPI(void) cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners,
00582 int count, CvSize win, CvSize zero_zone,
00583 CvTermCriteria criteria );
00584
00585
00586
00587 CVAPI(void) cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image,
00588 CvArr* temp_image, CvPoint2D32f* corners,
00589 int* corner_count, double quality_level,
00590 double min_distance,
00591 const CvArr* mask CV_DEFAULT(NULL),
00592 int block_size CV_DEFAULT(3),
00593 int use_harris CV_DEFAULT(0),
00594 double k CV_DEFAULT(0.04) );
00595
00596
00597
00598
00599
00600
00601
00602
00603 CVAPI(CvSeq*) cvHoughLines2( CvArr* image, void* line_storage, int method,
00604 double rho, double theta, int threshold,
00605 double param1 CV_DEFAULT(0), double param2 CV_DEFAULT(0));
00606
00607
00608 CVAPI(CvSeq*) cvHoughCircles( CvArr* image, void* circle_storage,
00609 int method, double dp, double min_dist,
00610 double param1 CV_DEFAULT(100),
00611 double param2 CV_DEFAULT(100),
00612 int min_radius CV_DEFAULT(0),
00613 int max_radius CV_DEFAULT(0));
00614
00615
00616 CVAPI(void) cvFitLine( const CvArr* points, int dist_type, double param,
00617 double reps, double aeps, float* line );
00618
00619 #ifdef __cplusplus
00620 }
00621 #endif
00622
00623 #endif