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
00126
00127
00128 CVAPI(void) cvPyrSegmentation( IplImage* src, IplImage* dst,
00129 CvMemStorage* storage, CvSeq** comp,
00130 int level, double threshold1,
00131 double threshold2 );
00132
00133
00134 CVAPI(void) cvPyrMeanShiftFiltering( const CvArr* src, CvArr* dst,
00135 double sp, double sr, int max_level CV_DEFAULT(1),
00136 CvTermCriteria termcrit CV_DEFAULT(cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,5,1)));
00137
00138
00139 CVAPI(void) cvWatershed( const CvArr* image, CvArr* markers );
00140
00141
00142 CVAPI(void) cvInpaint( const CvArr* src, const CvArr* inpaint_mask,
00143 CvArr* dst, double inpaintRange, int flags );
00144
00145
00146
00147
00148 CVAPI(void) cvSobel( const CvArr* src, CvArr* dst,
00149 int xorder, int yorder,
00150 int aperture_size CV_DEFAULT(3));
00151
00152
00153 CVAPI(void) cvLaplace( const CvArr* src, CvArr* dst,
00154 int aperture_size CV_DEFAULT(3) );
00155
00156
00157 CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code );
00158
00159
00160
00161 CVAPI(void) cvResize( const CvArr* src, CvArr* dst,
00162 int interpolation CV_DEFAULT( CV_INTER_LINEAR ));
00163
00164
00165 CVAPI(void) cvWarpAffine( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
00166 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00167 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00168
00169
00170 CVAPI(CvMat*) cvGetAffineTransform( const CvPoint2D32f * src,
00171 const CvPoint2D32f * dst,
00172 CvMat * map_matrix );
00173
00174
00175 CVAPI(CvMat*) cv2DRotationMatrix( CvPoint2D32f center, double angle,
00176 double scale, CvMat* map_matrix );
00177
00178
00179 CVAPI(void) cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
00180 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00181 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00182
00183
00184 CVAPI(CvMat*) cvGetPerspectiveTransform( const CvPoint2D32f* src,
00185 const CvPoint2D32f* dst,
00186 CvMat* map_matrix );
00187
00188
00189 CVAPI(void) cvRemap( const CvArr* src, CvArr* dst,
00190 const CvArr* mapx, const CvArr* mapy,
00191 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
00192 CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
00193
00194
00195 CVAPI(void) cvConvertMaps( const CvArr* mapx, const CvArr* mapy,
00196 CvArr* mapxy, CvArr* mapalpha );
00197
00198
00199 CVAPI(void) cvLogPolar( const CvArr* src, CvArr* dst,
00200 CvPoint2D32f center, double M,
00201 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
00202
00203
00204 CVAPI(void) cvLinearPolar( const CvArr* src, CvArr* dst,
00205 CvPoint2D32f center, double maxRadius,
00206 int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
00207
00208
00209 CVAPI(void) cvUndistort2( const CvArr* src, CvArr* dst,
00210 const CvMat* camera_matrix,
00211 const CvMat* distortion_coeffs,
00212 const CvMat* new_camera_matrix CV_DEFAULT(0) );
00213
00214
00215
00216 CVAPI(void) cvInitUndistortMap( const CvMat* camera_matrix,
00217 const CvMat* distortion_coeffs,
00218 CvArr* mapx, CvArr* mapy );
00219
00220
00221 CVAPI(void) cvInitUndistortRectifyMap( const CvMat* camera_matrix,
00222 const CvMat* dist_coeffs,
00223 const CvMat *R, const CvMat* new_camera_matrix,
00224 CvArr* mapx, CvArr* mapy );
00225
00226
00227
00228 CVAPI(void) cvUndistortPoints( const CvMat* src, CvMat* dst,
00229 const CvMat* camera_matrix,
00230 const CvMat* dist_coeffs,
00231 const CvMat* R CV_DEFAULT(0),
00232 const CvMat* P CV_DEFAULT(0));
00233
00234
00235 CVAPI(IplConvKernel*) cvCreateStructuringElementEx(
00236 int cols, int rows, int anchor_x, int anchor_y,
00237 int shape, int* values CV_DEFAULT(NULL) );
00238
00239
00240 CVAPI(void) cvReleaseStructuringElement( IplConvKernel** element );
00241
00242
00243
00244 CVAPI(void) cvErode( const CvArr* src, CvArr* dst,
00245 IplConvKernel* element CV_DEFAULT(NULL),
00246 int iterations CV_DEFAULT(1) );
00247
00248
00249
00250 CVAPI(void) cvDilate( const CvArr* src, CvArr* dst,
00251 IplConvKernel* element CV_DEFAULT(NULL),
00252 int iterations CV_DEFAULT(1) );
00253
00254
00255 CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst,
00256 CvArr* temp, IplConvKernel* element,
00257 int operation, int iterations CV_DEFAULT(1) );
00258
00259
00260 CVAPI(void) cvMoments( const CvArr* arr, CvMoments* moments, int binary CV_DEFAULT(0));
00261
00262
00263 CVAPI(double) cvGetSpatialMoment( CvMoments* moments, int x_order, int y_order );
00264 CVAPI(double) cvGetCentralMoment( CvMoments* moments, int x_order, int y_order );
00265 CVAPI(double) cvGetNormalizedCentralMoment( CvMoments* moments,
00266 int x_order, int y_order );
00267
00268
00269 CVAPI(void) cvGetHuMoments( CvMoments* moments, CvHuMoments* hu_moments );
00270
00271
00272
00273
00274
00275 CVAPI(int) cvSampleLine( const CvArr* image, CvPoint pt1, CvPoint pt2, void* buffer,
00276 int connectivity CV_DEFAULT(8));
00277
00278
00279
00280
00281 CVAPI(void) cvGetRectSubPix( const CvArr* src, CvArr* dst, CvPoint2D32f center );
00282
00283
00284
00285
00286
00287
00288
00289 CVAPI(void) cvGetQuadrangleSubPix( const CvArr* src, CvArr* dst,
00290 const CvMat* map_matrix );
00291
00292
00293
00294 CVAPI(void) cvMatchTemplate( const CvArr* image, const CvArr* templ,
00295 CvArr* result, int method );
00296
00297
00298
00299 CVAPI(float) cvCalcEMD2( const CvArr* signature1,
00300 const CvArr* signature2,
00301 int distance_type,
00302 CvDistanceFunction distance_func CV_DEFAULT(NULL),
00303 const CvArr* cost_matrix CV_DEFAULT(NULL),
00304 CvArr* flow CV_DEFAULT(NULL),
00305 float* lower_bound CV_DEFAULT(NULL),
00306 void* userdata CV_DEFAULT(NULL));
00307
00308
00309
00310
00311
00312
00313
00314 CVAPI(int) cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,
00315 int header_size CV_DEFAULT(sizeof(CvContour)),
00316 int mode CV_DEFAULT(CV_RETR_LIST),
00317 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00318 CvPoint offset CV_DEFAULT(cvPoint(0,0)));
00319
00320
00321
00322
00323
00324
00325 CVAPI(CvContourScanner) cvStartFindContours( CvArr* image, CvMemStorage* storage,
00326 int header_size CV_DEFAULT(sizeof(CvContour)),
00327 int mode CV_DEFAULT(CV_RETR_LIST),
00328 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00329 CvPoint offset CV_DEFAULT(cvPoint(0,0)));
00330
00331
00332 CVAPI(CvSeq*) cvFindNextContour( CvContourScanner scanner );
00333
00334
00335
00336
00337 CVAPI(void) cvSubstituteContour( CvContourScanner scanner, CvSeq* new_contour );
00338
00339
00340
00341 CVAPI(CvSeq*) cvEndFindContours( CvContourScanner* scanner );
00342
00343
00344 CVAPI(CvSeq*) cvApproxChains( CvSeq* src_seq, CvMemStorage* storage,
00345 int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
00346 double parameter CV_DEFAULT(0),
00347 int minimal_perimeter CV_DEFAULT(0),
00348 int recursive CV_DEFAULT(0));
00349
00350
00351
00352
00353 CVAPI(void) cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );
00354
00355
00356 CVAPI(CvPoint) cvReadChainPoint( CvChainPtReader* reader );
00357
00358
00359
00360
00361
00362
00363 CVAPI(void) cvInitSubdivDelaunay2D( CvSubdiv2D* subdiv, CvRect rect );
00364
00365
00366 CVAPI(CvSubdiv2D*) cvCreateSubdiv2D( int subdiv_type, int header_size,
00367 int vtx_size, int quadedge_size,
00368 CvMemStorage* storage );
00369
00370
00371
00372
00373 CV_INLINE CvSubdiv2D* cvCreateSubdivDelaunay2D( CvRect rect, CvMemStorage* storage )
00374 {
00375 CvSubdiv2D* subdiv = cvCreateSubdiv2D( CV_SEQ_KIND_SUBDIV2D, sizeof(*subdiv),
00376 sizeof(CvSubdiv2DPoint), sizeof(CvQuadEdge2D), storage );
00377
00378 cvInitSubdivDelaunay2D( subdiv, rect );
00379 return subdiv;
00380 }
00381
00382
00383
00384 CVAPI(CvSubdiv2DPoint*) cvSubdivDelaunay2DInsert( CvSubdiv2D* subdiv, CvPoint2D32f pt);
00385
00386
00387
00388
00389 CVAPI(CvSubdiv2DPointLocation) cvSubdiv2DLocate(
00390 CvSubdiv2D* subdiv, CvPoint2D32f pt,
00391 CvSubdiv2DEdge* edge,
00392 CvSubdiv2DPoint** vertex CV_DEFAULT(NULL) );
00393
00394
00395 CVAPI(void) cvCalcSubdivVoronoi2D( CvSubdiv2D* subdiv );
00396
00397
00398
00399 CVAPI(void) cvClearSubdivVoronoi2D( CvSubdiv2D* subdiv );
00400
00401
00402
00403 CVAPI(CvSubdiv2DPoint*) cvFindNearestPoint2D( CvSubdiv2D* subdiv, CvPoint2D32f pt );
00404
00405
00406
00407
00408 CV_INLINE CvSubdiv2DEdge cvSubdiv2DNextEdge( CvSubdiv2DEdge edge )
00409 {
00410 return CV_SUBDIV2D_NEXT_EDGE(edge);
00411 }
00412
00413
00414 CV_INLINE CvSubdiv2DEdge cvSubdiv2DRotateEdge( CvSubdiv2DEdge edge, int rotate )
00415 {
00416 return (edge & ~3) + ((edge + rotate) & 3);
00417 }
00418
00419 CV_INLINE CvSubdiv2DEdge cvSubdiv2DSymEdge( CvSubdiv2DEdge edge )
00420 {
00421 return edge ^ 2;
00422 }
00423
00424 CV_INLINE CvSubdiv2DEdge cvSubdiv2DGetEdge( CvSubdiv2DEdge edge, CvNextEdgeType type )
00425 {
00426 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
00427 edge = e->next[(edge + (int)type) & 3];
00428 return (edge & ~3) + ((edge + ((int)type >> 4)) & 3);
00429 }
00430
00431
00432 CV_INLINE CvSubdiv2DPoint* cvSubdiv2DEdgeOrg( CvSubdiv2DEdge edge )
00433 {
00434 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
00435 return (CvSubdiv2DPoint*)e->pt[edge & 3];
00436 }
00437
00438
00439 CV_INLINE CvSubdiv2DPoint* cvSubdiv2DEdgeDst( CvSubdiv2DEdge edge )
00440 {
00441 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
00442 return (CvSubdiv2DPoint*)e->pt[(edge + 2) & 3];
00443 }
00444
00445
00446 CV_INLINE double cvTriangleArea( CvPoint2D32f a, CvPoint2D32f b, CvPoint2D32f c )
00447 {
00448 return ((double)b.x - a.x) * ((double)c.y - a.y) - ((double)b.y - a.y) * ((double)c.x - a.x);
00449 }
00450
00451
00452
00453
00454
00455
00456
00457
00458 CVAPI(CvSeq*) cvApproxPoly( const void* src_seq,
00459 int header_size, CvMemStorage* storage,
00460 int method, double parameter,
00461 int parameter2 CV_DEFAULT(0));
00462
00463
00464 CVAPI(double) cvArcLength( const void* curve,
00465 CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
00466 int is_closed CV_DEFAULT(-1));
00467
00468 CV_INLINE double cvContourPerimeter( const void* contour )
00469 {
00470 return cvArcLength( contour, CV_WHOLE_SEQ, 1 );
00471 }
00472
00473
00474
00475
00476 CVAPI(CvRect) cvBoundingRect( CvArr* points, int update CV_DEFAULT(0) );
00477
00478
00479 CVAPI(double) cvContourArea( const CvArr* contour,
00480 CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
00481 int oriented CV_DEFAULT(0));
00482
00483
00484 CVAPI(CvBox2D) cvMinAreaRect2( const CvArr* points,
00485 CvMemStorage* storage CV_DEFAULT(NULL));
00486
00487
00488 CVAPI(int) cvMinEnclosingCircle( const CvArr* points,
00489 CvPoint2D32f* center, float* radius );
00490
00491
00492 CVAPI(double) cvMatchShapes( const void* object1, const void* object2,
00493 int method, double parameter CV_DEFAULT(0));
00494
00495
00496 CVAPI(CvSeq*) cvConvexHull2( const CvArr* input,
00497 void* hull_storage CV_DEFAULT(NULL),
00498 int orientation CV_DEFAULT(CV_CLOCKWISE),
00499 int return_points CV_DEFAULT(0));
00500
00501
00502 CVAPI(int) cvCheckContourConvexity( const CvArr* contour );
00503
00504
00505
00506 CVAPI(CvSeq*) cvConvexityDefects( const CvArr* contour, const CvArr* convexhull,
00507 CvMemStorage* storage CV_DEFAULT(NULL));
00508
00509
00510 CVAPI(CvBox2D) cvFitEllipse2( const CvArr* points );
00511
00512
00513 CVAPI(CvRect) cvMaxRect( const CvRect* rect1, const CvRect* rect2 );
00514
00515
00516 CVAPI(void) cvBoxPoints( CvBox2D box, CvPoint2D32f pt[4] );
00517
00518
00519
00520 CVAPI(CvSeq*) cvPointSeqFromMat( int seq_kind, const CvArr* mat,
00521 CvContour* contour_header,
00522 CvSeqBlock* block );
00523
00524
00525
00526
00527
00528 CVAPI(double) cvPointPolygonTest( const CvArr* contour,
00529 CvPoint2D32f pt, int measure_dist );
00530
00531
00532
00533
00534
00535
00536 CVAPI(CvHistogram*) cvCreateHist( int dims, int* sizes, int type,
00537 float** ranges CV_DEFAULT(NULL),
00538 int uniform CV_DEFAULT(1));
00539
00540
00541 CVAPI(void) cvSetHistBinRanges( CvHistogram* hist, float** ranges,
00542 int uniform CV_DEFAULT(1));
00543
00544
00545 CVAPI(CvHistogram*) cvMakeHistHeaderForArray(
00546 int dims, int* sizes, CvHistogram* hist,
00547 float* data, float** ranges CV_DEFAULT(NULL),
00548 int uniform CV_DEFAULT(1));
00549
00550
00551 CVAPI(void) cvReleaseHist( CvHistogram** hist );
00552
00553
00554 CVAPI(void) cvClearHist( CvHistogram* hist );
00555
00556
00557 CVAPI(void) cvGetMinMaxHistValue( const CvHistogram* hist,
00558 float* min_value, float* max_value,
00559 int* min_idx CV_DEFAULT(NULL),
00560 int* max_idx CV_DEFAULT(NULL));
00561
00562
00563
00564
00565 CVAPI(void) cvNormalizeHist( CvHistogram* hist, double factor );
00566
00567
00568
00569 CVAPI(void) cvThreshHist( CvHistogram* hist, double threshold );
00570
00571
00572
00573 CVAPI(double) cvCompareHist( const CvHistogram* hist1,
00574 const CvHistogram* hist2,
00575 int method);
00576
00577
00578
00579 CVAPI(void) cvCopyHist( const CvHistogram* src, CvHistogram** dst );
00580
00581
00582
00583
00584 CVAPI(void) cvCalcBayesianProb( CvHistogram** src, int number,
00585 CvHistogram** dst);
00586
00587
00588 CVAPI(void) cvCalcArrHist( CvArr** arr, CvHistogram* hist,
00589 int accumulate CV_DEFAULT(0),
00590 const CvArr* mask CV_DEFAULT(NULL) );
00591
00592 CV_INLINE void cvCalcHist( IplImage** image, CvHistogram* hist,
00593 int accumulate CV_DEFAULT(0),
00594 const CvArr* mask CV_DEFAULT(NULL) )
00595 {
00596 cvCalcArrHist( (CvArr**)image, hist, accumulate, mask );
00597 }
00598
00599
00600 CVAPI(void) cvCalcArrBackProject( CvArr** image, CvArr* dst,
00601 const CvHistogram* hist );
00602 #define cvCalcBackProject(image, dst, hist) cvCalcArrBackProject((CvArr**)image, dst, hist)
00603
00604
00605
00606
00607 CVAPI(void) cvCalcArrBackProjectPatch( CvArr** image, CvArr* dst, CvSize range,
00608 CvHistogram* hist, int method,
00609 double factor );
00610 #define cvCalcBackProjectPatch( image, dst, range, hist, method, factor ) \
00611 cvCalcArrBackProjectPatch( (CvArr**)image, dst, range, hist, method, factor )
00612
00613
00614
00615 CVAPI(void) cvCalcProbDensity( const CvHistogram* hist1, const CvHistogram* hist2,
00616 CvHistogram* dst_hist, double scale CV_DEFAULT(255) );
00617
00618
00619 CVAPI(void) cvEqualizeHist( const CvArr* src, CvArr* dst );
00620
00621
00622
00623 CVAPI(void) cvDistTransform( const CvArr* src, CvArr* dst,
00624 int distance_type CV_DEFAULT(CV_DIST_L2),
00625 int mask_size CV_DEFAULT(3),
00626 const float* mask CV_DEFAULT(NULL),
00627 CvArr* labels CV_DEFAULT(NULL));
00628
00629
00630
00631
00632 CVAPI(double) cvThreshold( const CvArr* src, CvArr* dst,
00633 double threshold, double max_value,
00634 int threshold_type );
00635
00636
00637
00638
00639
00640
00641 CVAPI(void) cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,
00642 int adaptive_method CV_DEFAULT(CV_ADAPTIVE_THRESH_MEAN_C),
00643 int threshold_type CV_DEFAULT(CV_THRESH_BINARY),
00644 int block_size CV_DEFAULT(3),
00645 double param1 CV_DEFAULT(5));
00646
00647
00648 CVAPI(void) cvFloodFill( CvArr* image, CvPoint seed_point,
00649 CvScalar new_val, CvScalar lo_diff CV_DEFAULT(cvScalarAll(0)),
00650 CvScalar up_diff CV_DEFAULT(cvScalarAll(0)),
00651 CvConnectedComp* comp CV_DEFAULT(NULL),
00652 int flags CV_DEFAULT(4),
00653 CvArr* mask CV_DEFAULT(NULL));
00654
00655
00656
00657
00658
00659
00660 CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1,
00661 double threshold2, int aperture_size CV_DEFAULT(3) );
00662
00663
00664
00665
00666 CVAPI(void) cvPreCornerDetect( const CvArr* image, CvArr* corners,
00667 int aperture_size CV_DEFAULT(3) );
00668
00669
00670
00671 CVAPI(void) cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
00672 int block_size, int aperture_size CV_DEFAULT(3) );
00673
00674
00675
00676 CVAPI(void) cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval,
00677 int block_size, int aperture_size CV_DEFAULT(3) );
00678
00679
00680
00681 CVAPI(void) cvCornerHarris( const CvArr* image, CvArr* harris_responce,
00682 int block_size, int aperture_size CV_DEFAULT(3),
00683 double k CV_DEFAULT(0.04) );
00684
00685
00686 CVAPI(void) cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners,
00687 int count, CvSize win, CvSize zero_zone,
00688 CvTermCriteria criteria );
00689
00690
00691
00692 CVAPI(void) cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image,
00693 CvArr* temp_image, CvPoint2D32f* corners,
00694 int* corner_count, double quality_level,
00695 double min_distance,
00696 const CvArr* mask CV_DEFAULT(NULL),
00697 int block_size CV_DEFAULT(3),
00698 int use_harris CV_DEFAULT(0),
00699 double k CV_DEFAULT(0.04) );
00700
00701
00702
00703
00704
00705
00706
00707
00708 CVAPI(CvSeq*) cvHoughLines2( CvArr* image, void* line_storage, int method,
00709 double rho, double theta, int threshold,
00710 double param1 CV_DEFAULT(0), double param2 CV_DEFAULT(0));
00711
00712
00713 CVAPI(CvSeq*) cvHoughCircles( CvArr* image, void* circle_storage,
00714 int method, double dp, double min_dist,
00715 double param1 CV_DEFAULT(100),
00716 double param2 CV_DEFAULT(100),
00717 int min_radius CV_DEFAULT(0),
00718 int max_radius CV_DEFAULT(0));
00719
00720
00721 CVAPI(void) cvFitLine( const CvArr* points, int dist_type, double param,
00722 double reps, double aeps, float* line );
00723
00724
00725
00726 CVAPI(struct CvFeatureTree*) cvCreateKDTree(CvMat* desc);
00727
00728
00729 CVAPI(struct CvFeatureTree*) cvCreateSpillTree( const CvMat* raw_data,
00730 const int naive CV_DEFAULT(50),
00731 const double rho CV_DEFAULT(.7),
00732 const double tau CV_DEFAULT(.1) );
00733
00734
00735 CVAPI(void) cvReleaseFeatureTree(struct CvFeatureTree* tr);
00736
00737
00738
00739 CVAPI(void) cvFindFeatures(struct CvFeatureTree* tr, const CvMat* query_points,
00740 CvMat* indices, CvMat* dist, int k, int emax CV_DEFAULT(20));
00741
00742
00743
00744 CVAPI(int) cvFindFeaturesBoxed(struct CvFeatureTree* tr,
00745 CvMat* bounds_min, CvMat* bounds_max,
00746 CvMat* out_indices);
00747
00748
00749
00750
00751 CVAPI(struct CvLSH*) cvCreateLSH(struct CvLSHOperations* ops, int d,
00752 int L CV_DEFAULT(10), int k CV_DEFAULT(10),
00753 int type CV_DEFAULT(CV_64FC1), double r CV_DEFAULT(4),
00754 int64 seed CV_DEFAULT(-1));
00755
00756
00757 CVAPI(struct CvLSH*) cvCreateMemoryLSH(int d, int n, int L CV_DEFAULT(10), int k CV_DEFAULT(10),
00758 int type CV_DEFAULT(CV_64FC1), double r CV_DEFAULT(4),
00759 int64 seed CV_DEFAULT(-1));
00760
00761
00762 CVAPI(void) cvReleaseLSH(struct CvLSH** lsh);
00763
00764
00765 CVAPI(unsigned int) LSHSize(struct CvLSH* lsh);
00766
00767
00768 CVAPI(void) cvLSHAdd(struct CvLSH* lsh, const CvMat* data, CvMat* indices CV_DEFAULT(0));
00769
00770
00771 CVAPI(void) cvLSHRemove(struct CvLSH* lsh, const CvMat* indices);
00772
00773
00774
00775 CVAPI(void) cvLSHQuery(struct CvLSH* lsh, const CvMat* query_points,
00776 CvMat* indices, CvMat* dist, int k, int emax);
00777
00778
00779 #ifdef __cplusplus
00780 }
00781 #endif
00782
00783 #endif