1 # 1 "../../../include/opencv/cv.h"
4 # 1 "../../../include/opencv/cv.h"
5 # 58 "../../../include/opencv/cv.h"
6 # 1 "../../../include/opencv/cxcore.h" 1
7 # 70 "../../../include/opencv/cxcore.h"
8 # 1 "../../../include/opencv/cxtypes.h" 1
9 # 161 "../../../include/opencv/cxtypes.h"
10 typedef int64_t int64;
11 typedef uint64_t uint64;
15 typedef unsigned char uchar;
16 typedef unsigned short ushort;
19 typedef signed char schar;
43 # 226 "../../../include/opencv/cxtypes.h"
44 inline int cvRound( double value )
46 # 240 "../../../include/opencv/cxtypes.h"
47 return (int)lrint(value);
55 inline int cvFloor( double value )
59 return i - (i > value);
60 # 263 "../../../include/opencv/cxtypes.h"
64 inline int cvCeil( double value )
68 return i + (i < value);
69 # 281 "../../../include/opencv/cxtypes.h"
75 inline int cvIsNaN( double value )
84 return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) +
85 ((unsigned)ieee754.u != 0) > 0x7ff00000;
90 inline int cvIsInf( double value )
99 return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) == 0x7ff00000 &&
100 (unsigned)ieee754.u == 0;
107 typedef uint64 CvRNG;
109 inline CvRNG cvRNG( int64 seed = -1)
111 CvRNG rng = seed ? (uint64)seed : (uint64)(int64)-1;
116 inline unsigned cvRandInt( CvRNG* rng )
119 temp = (uint64)(unsigned)temp*4164903690U + (temp >> 32);
121 return (unsigned)temp;
125 inline double cvRandReal( CvRNG* rng )
127 return cvRandInt(rng)*2.3283064365386962890625e-10 ;
129 # 382 "../../../include/opencv/cxtypes.h"
130 typedef struct _IplImage
149 struct _IplImage *maskROI;
151 struct _IplTileInfo *tileInfo;
159 char *imageDataOrigin;
165 typedef struct _IplTileInfo IplTileInfo;
167 typedef struct _IplROI
177 typedef struct _IplConvKernel
188 typedef struct _IplConvKernelFP
197 # 561 "../../../include/opencv/cxtypes.h"
235 # 639 "../../../include/opencv/cxtypes.h"
236 inline CvMat cvMat( int rows, int cols, int type, void* data = NULL)
240 assert( (unsigned)((type) & ((1 << 3) - 1)) <= 6 );
241 type = ((type) & ((1 << 3)*64 - 1));
242 m.type = 0x42420000 | (1 << 14) | type;
245 m.step = m.cols*(((((type) & ((64 - 1) << 3)) >> 3) + 1) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> ((type) & ((1 << 3) - 1))*2) & 3));
246 m.data.ptr = (uchar*)data;
252 # 669 "../../../include/opencv/cxtypes.h"
253 inline double cvmGet( const CvMat* mat, int row, int col )
257 type = ((mat->type) & ((1 << 3)*64 - 1));
258 assert( (unsigned)row < (unsigned)mat->rows &&
259 (unsigned)col < (unsigned)mat->cols );
261 if( type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) )
262 return ((float*)(mat->data.ptr + (size_t)mat->step*row))[col];
265 assert( type == (((6) & ((1 << 3) - 1)) + (((1)-1) << 3)) );
266 return ((double*)(mat->data.ptr + (size_t)mat->step*row))[col];
271 inline void cvmSet( CvMat* mat, int row, int col, double value )
274 type = ((mat->type) & ((1 << 3)*64 - 1));
275 assert( (unsigned)row < (unsigned)mat->rows &&
276 (unsigned)col < (unsigned)mat->cols );
278 if( type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) )
279 ((float*)(mat->data.ptr + (size_t)mat->step*row))[col] = (float)value;
282 assert( type == (((6) & ((1 << 3) - 1)) + (((1)-1) << 3)) );
283 ((double*)(mat->data.ptr + (size_t)mat->step*row))[col] = (double)value;
288 inline int cvIplDepth( int type )
290 int depth = ((type) & ((1 << 3) - 1));
291 return ((((sizeof(size_t)<<28)|0x8442211) >> ((depth) & ((1 << 3) - 1))*4) & 15)*8 | (depth == 1 || depth == 3 ||
292 depth == 4 ? 0x80000000 : 0);
294 # 722 "../../../include/opencv/cxtypes.h"
295 typedef struct CvMatND
320 # 762 "../../../include/opencv/cxtypes.h"
323 typedef struct CvSparseMat
338 # 789 "../../../include/opencv/cxtypes.h"
339 typedef struct CvSparseNode
342 struct CvSparseNode* next;
346 typedef struct CvSparseMatIterator
353 # 811 "../../../include/opencv/cxtypes.h"
354 typedef int CvHistType;
355 # 827 "../../../include/opencv/cxtypes.h"
356 typedef struct CvHistogram
365 # 857 "../../../include/opencv/cxtypes.h"
366 typedef struct CvRect
375 inline CvRect cvRect( int x, int y, int width, int height )
388 inline IplROI cvRectToROI( CvRect rect, int coi )
391 roi.xOffset = rect.x;
392 roi.yOffset = rect.y;
393 roi.width = rect.width;
394 roi.height = rect.height;
401 inline CvRect cvROIToRect( IplROI roi )
403 return cvRect( roi.xOffset, roi.yOffset, roi.width, roi.height );
412 typedef struct CvTermCriteria
422 inline CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon )
427 t.max_iter = max_iter;
428 t.epsilon = (float)epsilon;
436 typedef struct CvPoint
444 inline CvPoint cvPoint( int x, int y )
455 typedef struct CvPoint2D32f
463 inline CvPoint2D32f cvPoint2D32f( double x, double y )
474 inline CvPoint2D32f cvPointTo32f( CvPoint point )
476 return cvPoint2D32f( (float)point.x, (float)point.y );
480 inline CvPoint cvPointFrom32f( CvPoint2D32f point )
483 ipt.x = cvRound(point.x);
484 ipt.y = cvRound(point.y);
490 typedef struct CvPoint3D32f
499 inline CvPoint3D32f cvPoint3D32f( double x, double y, double z )
511 typedef struct CvPoint2D64f
519 inline CvPoint2D64f cvPoint2D64f( double x, double y )
530 typedef struct CvPoint3D64f
539 inline CvPoint3D64f cvPoint3D64f( double x, double y, double z )
560 inline CvSize cvSize( int width, int height )
570 typedef struct CvSize2D32f
578 inline CvSize2D32f cvSize2D32f( double width, double height )
582 s.width = (float)width;
583 s.height = (float)height;
588 typedef struct CvBox2D
599 typedef struct CvLineIterator
617 typedef struct CvSlice
619 int start_index, end_index;
623 inline CvSlice cvSlice( int start, int end )
626 slice.start_index = start;
627 slice.end_index = end;
638 typedef struct CvScalar
644 inline CvScalar cvScalar( double val0, double val1 = 0,
645 double val2 = 0, double val3 = 0)
648 scalar.val[0] = val0; scalar.val[1] = val1;
649 scalar.val[2] = val2; scalar.val[3] = val3;
654 inline CvScalar cvRealScalar( double val0 )
657 scalar.val[0] = val0;
658 scalar.val[1] = scalar.val[2] = scalar.val[3] = 0;
662 inline CvScalar cvScalarAll( double val0123 )
665 scalar.val[0] = val0123;
666 scalar.val[1] = val0123;
667 scalar.val[2] = val0123;
668 scalar.val[3] = val0123;
678 typedef struct CvMemBlock
680 struct CvMemBlock* prev;
681 struct CvMemBlock* next;
687 typedef struct CvMemStorage
692 struct CvMemStorage* parent;
703 typedef struct CvMemStoragePos
713 typedef struct CvSeqBlock
715 struct CvSeqBlock* prev;
716 struct CvSeqBlock* next;
723 # 1239 "../../../include/opencv/cxtypes.h"
726 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first;
729 # 1259 "../../../include/opencv/cxtypes.h"
730 typedef struct CvSetElem
732 int flags; struct CvSetElem* next_free;
743 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first; CvSetElem* free_elems; int active_count;
746 # 1315 "../../../include/opencv/cxtypes.h"
747 typedef struct CvGraphEdge
749 int flags; float weight; struct CvGraphEdge* next[2]; struct CvGraphVtx* vtx[2];
753 typedef struct CvGraphVtx
755 int flags; struct CvGraphEdge* first;
759 typedef struct CvGraphVtx2D
761 int flags; struct CvGraphEdge* first;
765 # 1342 "../../../include/opencv/cxtypes.h"
766 typedef struct CvGraph
768 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first; CvSetElem* free_elems; int active_count; CvSet* edges;
776 typedef struct CvChain
778 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first;
789 typedef struct CvContour
791 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first; CvRect rect; int color; int reserved[3];
795 typedef CvContour CvPoint2DSeq;
796 # 1509 "../../../include/opencv/cxtypes.h"
797 typedef struct CvSeqWriter
799 int header_size; CvSeq* seq; CvSeqBlock* block; schar* ptr; schar* block_min; schar* block_max;
802 # 1527 "../../../include/opencv/cxtypes.h"
803 typedef struct CvSeqReader
805 int header_size; CvSeq* seq; CvSeqBlock* block; schar* ptr; schar* block_min; schar* block_max; int delta_index; schar* prev_elem;
808 # 1647 "../../../include/opencv/cxtypes.h"
809 typedef struct CvFileStorage CvFileStorage;
810 # 1657 "../../../include/opencv/cxtypes.h"
811 typedef struct CvAttrList
814 struct CvAttrList* next;
818 inline CvAttrList cvAttrList( const char** attr = NULL,
819 CvAttrList* next = NULL )
829 # 1710 "../../../include/opencv/cxtypes.h"
830 typedef struct CvString
839 typedef struct CvStringHashNode
843 struct CvStringHashNode* next;
847 typedef struct CvGenericHash CvFileNodeHash;
850 typedef struct CvFileNode
853 struct CvTypeInfo* info;
869 typedef int ( *CvIsInstanceFunc)( const void* struct_ptr );
870 typedef void ( *CvReleaseFunc)( void** struct_dblptr );
871 typedef void* ( *CvReadFunc)( CvFileStorage* storage, CvFileNode* node );
872 typedef void ( *CvWriteFunc)( CvFileStorage* storage, const char* name,
873 const void* struct_ptr, CvAttrList attributes );
874 typedef void* ( *CvCloneFunc)( const void* struct_ptr );
879 typedef struct CvTypeInfo
883 struct CvTypeInfo* prev;
884 struct CvTypeInfo* next;
885 const char* type_name;
886 CvIsInstanceFunc is_instance;
887 CvReleaseFunc release;
897 typedef struct CvPluginFuncInfo
900 void* default_func_addr;
901 const char* func_names;
907 typedef struct CvModuleInfo
909 struct CvModuleInfo* next;
912 CvPluginFuncInfo* func_tab;
915 # 71 "../../../include/opencv/cxcore.h" 2
916 # 1 "../../../include/opencv/cxerror.h" 1
917 # 47 "../../../include/opencv/cxerror.h"
918 typedef int CVStatus;
919 # 72 "../../../include/opencv/cxcore.h" 2
920 # 1 "../../../include/opencv/cvver.h" 1
921 # 73 "../../../include/opencv/cxcore.h" 2
925 # 86 "../../../include/opencv/cxcore.h"
926 extern "C" void* cvAlloc( size_t size );
934 extern "C" void cvFree_( void* ptr );
938 extern "C" IplImage* cvCreateImageHeader( CvSize size, int depth, int channels );
941 extern "C" IplImage* cvInitImageHeader( IplImage* image, CvSize size, int depth,
942 int channels, int origin = 0,
946 extern "C" IplImage* cvCreateImage( CvSize size, int depth, int channels );
949 extern "C" void cvReleaseImageHeader( IplImage** image );
952 extern "C" void cvReleaseImage( IplImage** image );
955 extern "C" IplImage* cvCloneImage( const IplImage* image );
959 extern "C" void cvSetImageCOI( IplImage* image, int coi );
962 extern "C" int cvGetImageCOI( const IplImage* image );
965 extern "C" void cvSetImageROI( IplImage* image, CvRect rect );
968 extern "C" void cvResetImageROI( IplImage* image );
971 extern "C" CvRect cvGetImageROI( const IplImage* image );
974 extern "C" CvMat* cvCreateMatHeader( int rows, int cols, int type );
979 extern "C" CvMat* cvInitMatHeader( CvMat* mat, int rows, int cols,
980 int type, void* data = NULL,
981 int step = 0x7fffffff );
984 extern "C" CvMat* cvCreateMat( int rows, int cols, int type );
988 extern "C" void cvReleaseMat( CvMat** mat );
992 inline void cvDecRefData( CvArr* arr )
994 if( (((arr) != NULL && (((const CvMat*)(arr))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(arr))->cols > 0 && ((const CvMat*)(arr))->rows > 0) && ((const CvMat*)(arr))->data.ptr != NULL))
996 CvMat* mat = (CvMat*)arr;
997 mat->data.ptr = NULL;
998 if( mat->refcount != NULL && --*mat->refcount == 0 )
999 (cvFree_(*(&mat->refcount)), *(&mat->refcount)=0);
1000 mat->refcount = NULL;
1002 else if( (((arr) != NULL && (((const CvMatND*)(arr))->type & 0xFFFF0000) == 0x42430000) && ((const CvMatND*)(arr))->data.ptr != NULL))
1004 CvMatND* mat = (CvMatND*)arr;
1005 mat->data.ptr = NULL;
1006 if( mat->refcount != NULL && --*mat->refcount == 0 )
1007 (cvFree_(*(&mat->refcount)), *(&mat->refcount)=0);
1008 mat->refcount = NULL;
1013 inline int cvIncRefData( CvArr* arr )
1016 if( (((arr) != NULL && (((const CvMat*)(arr))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(arr))->cols > 0 && ((const CvMat*)(arr))->rows > 0) && ((const CvMat*)(arr))->data.ptr != NULL))
1018 CvMat* mat = (CvMat*)arr;
1019 if( mat->refcount != NULL )
1020 refcount = ++*mat->refcount;
1022 else if( (((arr) != NULL && (((const CvMatND*)(arr))->type & 0xFFFF0000) == 0x42430000) && ((const CvMatND*)(arr))->data.ptr != NULL))
1024 CvMatND* mat = (CvMatND*)arr;
1025 if( mat->refcount != NULL )
1026 refcount = ++*mat->refcount;
1033 extern "C" CvMat* cvCloneMat( const CvMat* mat );
1038 extern "C" CvMat* cvGetSubRect( const CvArr* arr, CvMat* submat, CvRect rect );
1043 extern "C" CvMat* cvGetRows( const CvArr* arr, CvMat* submat,
1044 int start_row, int end_row,
1047 inline CvMat* cvGetRow( const CvArr* arr, CvMat* submat, int row )
1049 return cvGetRows( arr, submat, row, row + 1, 1 );
1055 extern "C" CvMat* cvGetCols( const CvArr* arr, CvMat* submat,
1056 int start_col, int end_col );
1058 inline CvMat* cvGetCol( const CvArr* arr, CvMat* submat, int col )
1060 return cvGetCols( arr, submat, col, col + 1 );
1067 extern "C" CvMat* cvGetDiag( const CvArr* arr, CvMat* submat,
1071 extern "C" void cvScalarToRawData( const CvScalar* scalar, void* data, int type,
1072 int extend_to_12 = 0 );
1074 extern "C" void cvRawDataToScalar( const void* data, int type, CvScalar* scalar );
1077 extern "C" CvMatND* cvCreateMatNDHeader( int dims, const int* sizes, int type );
1080 extern "C" CvMatND* cvCreateMatND( int dims, const int* sizes, int type );
1083 extern "C" CvMatND* cvInitMatNDHeader( CvMatND* mat, int dims, const int* sizes,
1084 int type, void* data = NULL );
1087 inline void cvReleaseMatND( CvMatND** mat )
1089 cvReleaseMat( (CvMat**)mat );
1093 extern "C" CvMatND* cvCloneMatND( const CvMatND* mat );
1096 extern "C" CvSparseMat* cvCreateSparseMat( int dims, const int* sizes, int type );
1099 extern "C" void cvReleaseSparseMat( CvSparseMat** mat );
1102 extern "C" CvSparseMat* cvCloneSparseMat( const CvSparseMat* mat );
1106 extern "C" CvSparseNode* cvInitSparseMatIterator( const CvSparseMat* mat,
1107 CvSparseMatIterator* mat_iterator );
1110 inline CvSparseNode* cvGetNextSparseNode( CvSparseMatIterator* mat_iterator )
1112 if( mat_iterator->node->next )
1113 return mat_iterator->node = mat_iterator->node->next;
1117 for( idx = ++mat_iterator->curidx; idx < mat_iterator->mat->hashsize; idx++ )
1119 CvSparseNode* node = (CvSparseNode*)mat_iterator->mat->hashtable[idx];
1122 mat_iterator->curidx = idx;
1123 return mat_iterator->node = node;
1134 typedef struct CvNArrayIterator
1145 # 313 "../../../include/opencv/cxcore.h"
1146 extern "C" int cvInitNArrayIterator( int count, CvArr** arrs,
1147 const CvArr* mask, CvMatND* stubs,
1148 CvNArrayIterator* array_iterator,
1152 extern "C" int cvNextNArraySlice( CvNArrayIterator* array_iterator );
1157 extern "C" int cvGetElemType( const CvArr* arr );
1161 extern "C" int cvGetDims( const CvArr* arr, int* sizes = NULL );
1167 extern "C" int cvGetDimSize( const CvArr* arr, int index );
1172 extern "C" uchar* cvPtr1D( const CvArr* arr, int idx0, int* type = NULL);
1173 extern "C" uchar* cvPtr2D( const CvArr* arr, int idx0, int idx1, int* type = NULL );
1174 extern "C" uchar* cvPtr3D( const CvArr* arr, int idx0, int idx1, int idx2,
1181 extern "C" uchar* cvPtrND( const CvArr* arr, const int* idx, int* type = NULL,
1182 int create_node = 1,
1183 unsigned* precalc_hashval = NULL);
1186 extern "C" CvScalar cvGet1D( const CvArr* arr, int idx0 );
1187 extern "C" CvScalar cvGet2D( const CvArr* arr, int idx0, int idx1 );
1188 extern "C" CvScalar cvGet3D( const CvArr* arr, int idx0, int idx1, int idx2 );
1189 extern "C" CvScalar cvGetND( const CvArr* arr, const int* idx );
1192 extern "C" double cvGetReal1D( const CvArr* arr, int idx0 );
1193 extern "C" double cvGetReal2D( const CvArr* arr, int idx0, int idx1 );
1194 extern "C" double cvGetReal3D( const CvArr* arr, int idx0, int idx1, int idx2 );
1195 extern "C" double cvGetRealND( const CvArr* arr, const int* idx );
1198 extern "C" void cvSet1D( CvArr* arr, int idx0, CvScalar value );
1199 extern "C" void cvSet2D( CvArr* arr, int idx0, int idx1, CvScalar value );
1200 extern "C" void cvSet3D( CvArr* arr, int idx0, int idx1, int idx2, CvScalar value );
1201 extern "C" void cvSetND( CvArr* arr, const int* idx, CvScalar value );
1204 extern "C" void cvSetReal1D( CvArr* arr, int idx0, double value );
1205 extern "C" void cvSetReal2D( CvArr* arr, int idx0, int idx1, double value );
1206 extern "C" void cvSetReal3D( CvArr* arr, int idx0,
1207 int idx1, int idx2, double value );
1208 extern "C" void cvSetRealND( CvArr* arr, const int* idx, double value );
1212 extern "C" void cvClearND( CvArr* arr, const int* idx );
1219 extern "C" CvMat* cvGetMat( const CvArr* arr, CvMat* header,
1224 extern "C" IplImage* cvGetImage( const CvArr* arr, IplImage* image_header );
1225 # 404 "../../../include/opencv/cxcore.h"
1226 extern "C" CvArr* cvReshapeMatND( const CvArr* arr,
1227 int sizeof_header, CvArr* header,
1228 int new_cn, int new_dims, int* new_sizes );
1234 extern "C" CvMat* cvReshape( const CvArr* arr, CvMat* header,
1235 int new_cn, int new_rows = 0 );
1239 extern "C" void cvRepeat( const CvArr* src, CvArr* dst );
1242 extern "C" void cvCreateData( CvArr* arr );
1245 extern "C" void cvReleaseData( CvArr* arr );
1250 extern "C" void cvSetData( CvArr* arr, void* data, int step );
1255 extern "C" void cvGetRawData( const CvArr* arr, uchar** data,
1257 CvSize* roi_size = NULL);
1260 extern "C" CvSize cvGetSize( const CvArr* arr );
1263 extern "C" void cvCopy( const CvArr* src, CvArr* dst,
1264 const CvArr* mask = NULL );
1268 extern "C" void cvSet( CvArr* arr, CvScalar value,
1269 const CvArr* mask = NULL );
1272 extern "C" void cvSetZero( CvArr* arr );
1278 extern "C" void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1,
1279 CvArr* dst2, CvArr* dst3 );
1283 extern "C" void cvMerge( const CvArr* src0, const CvArr* src1,
1284 const CvArr* src2, const CvArr* src3,
1289 extern "C" void cvMixChannels( const CvArr** src, int src_count,
1290 CvArr** dst, int dst_count,
1291 const int* from_to, int pair_count );
1298 extern "C" void cvConvertScale( const CvArr* src, CvArr* dst,
1301 # 489 "../../../include/opencv/cxcore.h"
1302 extern "C" void cvConvertScaleAbs( const CvArr* src, CvArr* dst,
1312 extern "C" CvTermCriteria cvCheckTermCriteria( CvTermCriteria criteria,
1314 int default_max_iters );
1321 extern "C" void cvAdd( const CvArr* src1, const CvArr* src2, CvArr* dst,
1322 const CvArr* mask = NULL);
1325 extern "C" void cvAddS( const CvArr* src, CvScalar value, CvArr* dst,
1326 const CvArr* mask = NULL);
1329 extern "C" void cvSub( const CvArr* src1, const CvArr* src2, CvArr* dst,
1330 const CvArr* mask = NULL);
1333 inline void cvSubS( const CvArr* src, CvScalar value, CvArr* dst,
1334 const CvArr* mask = NULL)
1336 cvAddS( src, cvScalar( -value.val[0], -value.val[1], -value.val[2], -value.val[3]),
1341 extern "C" void cvSubRS( const CvArr* src, CvScalar value, CvArr* dst,
1342 const CvArr* mask = NULL);
1346 extern "C" void cvMul( const CvArr* src1, const CvArr* src2,
1347 CvArr* dst, double scale = 1 );
1352 extern "C" void cvDiv( const CvArr* src1, const CvArr* src2,
1353 CvArr* dst, double scale = 1);
1356 extern "C" void cvScaleAdd( const CvArr* src1, CvScalar scale,
1357 const CvArr* src2, CvArr* dst );
1361 extern "C" void cvAddWeighted( const CvArr* src1, double alpha,
1362 const CvArr* src2, double beta,
1363 double gamma, CvArr* dst );
1366 extern "C" double cvDotProduct( const CvArr* src1, const CvArr* src2 );
1369 extern "C" void cvAnd( const CvArr* src1, const CvArr* src2,
1370 CvArr* dst, const CvArr* mask = NULL);
1373 extern "C" void cvAndS( const CvArr* src, CvScalar value,
1374 CvArr* dst, const CvArr* mask = NULL);
1377 extern "C" void cvOr( const CvArr* src1, const CvArr* src2,
1378 CvArr* dst, const CvArr* mask = NULL);
1381 extern "C" void cvOrS( const CvArr* src, CvScalar value,
1382 CvArr* dst, const CvArr* mask = NULL);
1385 extern "C" void cvXor( const CvArr* src1, const CvArr* src2,
1386 CvArr* dst, const CvArr* mask = NULL);
1389 extern "C" void cvXorS( const CvArr* src, CvScalar value,
1390 CvArr* dst, const CvArr* mask = NULL);
1393 extern "C" void cvNot( const CvArr* src, CvArr* dst );
1396 extern "C" void cvInRange( const CvArr* src, const CvArr* lower,
1397 const CvArr* upper, CvArr* dst );
1400 extern "C" void cvInRangeS( const CvArr* src, CvScalar lower,
1401 CvScalar upper, CvArr* dst );
1402 # 601 "../../../include/opencv/cxcore.h"
1403 extern "C" void cvCmp( const CvArr* src1, const CvArr* src2, CvArr* dst, int cmp_op );
1406 extern "C" void cvCmpS( const CvArr* src, double value, CvArr* dst, int cmp_op );
1409 extern "C" void cvMin( const CvArr* src1, const CvArr* src2, CvArr* dst );
1412 extern "C" void cvMax( const CvArr* src1, const CvArr* src2, CvArr* dst );
1415 extern "C" void cvMinS( const CvArr* src, double value, CvArr* dst );
1418 extern "C" void cvMaxS( const CvArr* src, double value, CvArr* dst );
1421 extern "C" void cvAbsDiff( const CvArr* src1, const CvArr* src2, CvArr* dst );
1424 extern "C" void cvAbsDiffS( const CvArr* src, CvArr* dst, CvScalar value );
1425 # 631 "../../../include/opencv/cxcore.h"
1426 extern "C" void cvCartToPolar( const CvArr* x, const CvArr* y,
1427 CvArr* magnitude, CvArr* angle = NULL,
1428 int angle_in_degrees = 0);
1433 extern "C" void cvPolarToCart( const CvArr* magnitude, const CvArr* angle,
1435 int angle_in_degrees = 0);
1438 extern "C" void cvPow( const CvArr* src, CvArr* dst, double power );
1443 extern "C" void cvExp( const CvArr* src, CvArr* dst );
1449 extern "C" void cvLog( const CvArr* src, CvArr* dst );
1452 extern "C" float cvFastArctan( float y, float x );
1455 extern "C" float cvCbrt( float value );
1463 extern "C" int cvCheckArr( const CvArr* arr, int flags = 0,
1464 double min_val = 0, double max_val = 0);
1469 extern "C" void cvRandArr( CvRNG* rng, CvArr* arr, int dist_type,
1470 CvScalar param1, CvScalar param2 );
1472 extern "C" void cvRandShuffle( CvArr* mat, CvRNG* rng,
1473 double iter_factor = 1.);
1480 extern "C" void cvSort( const CvArr* src, CvArr* dst = NULL,
1481 CvArr* idxmat = NULL,
1485 extern "C" int cvSolveCubic( const CvMat* coeffs, CvMat* roots );
1488 extern "C" void cvSolvePoly(const CvMat* coeffs, CvMat *roots2,
1489 int maxiter = 20, int fig = 100);
1496 extern "C" void cvCrossProduct( const CvArr* src1, const CvArr* src2, CvArr* dst );
1497 # 712 "../../../include/opencv/cxcore.h"
1498 extern "C" void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha,
1499 const CvArr* src3, double beta, CvArr* dst,
1505 extern "C" void cvTransform( const CvArr* src, CvArr* dst,
1506 const CvMat* transmat,
1507 const CvMat* shiftvec = NULL);
1511 extern "C" void cvPerspectiveTransform( const CvArr* src, CvArr* dst,
1515 extern "C" void cvMulTransposed( const CvArr* src, CvArr* dst, int order,
1516 const CvArr* delta = NULL,
1517 double scale = 1. );
1520 extern "C" void cvTranspose( const CvArr* src, CvArr* dst );
1524 extern "C" void cvCompleteSymm( CvMat* matrix, int LtoR = 0 );
1529 extern "C" void cvFlip( const CvArr* src, CvArr* dst = NULL,
1531 # 753 "../../../include/opencv/cxcore.h"
1532 extern "C" void cvSVD( CvArr* A, CvArr* W, CvArr* U = NULL,
1533 CvArr* V = NULL, int flags = 0);
1537 extern "C" void cvSVBkSb( const CvArr* W, const CvArr* U,
1538 const CvArr* V, const CvArr* B,
1539 CvArr* X, int flags );
1540 # 770 "../../../include/opencv/cxcore.h"
1541 extern "C" double cvInvert( const CvArr* src, CvArr* dst,
1547 extern "C" int cvSolve( const CvArr* src1, const CvArr* src2, CvArr* dst,
1551 extern "C" double cvDet( const CvArr* mat );
1554 extern "C" CvScalar cvTrace( const CvArr* mat );
1557 extern "C" void cvEigenVV( CvArr* mat, CvArr* evects, CvArr* evals,
1560 int highindex = -1);
1567 extern "C" void cvSetIdentity( CvArr* mat, CvScalar value = cvRealScalar(1) );
1570 extern "C" CvArr* cvRange( CvArr* mat, double start, double end );
1571 # 821 "../../../include/opencv/cxcore.h"
1572 extern "C" void cvCalcCovarMatrix( const CvArr** vects, int count,
1573 CvArr* cov_mat, CvArr* avg, int flags );
1578 extern "C" void cvCalcPCA( const CvArr* data, CvArr* mean,
1579 CvArr* eigenvals, CvArr* eigenvects, int flags );
1581 extern "C" void cvProjectPCA( const CvArr* data, const CvArr* mean,
1582 const CvArr* eigenvects, CvArr* result );
1584 extern "C" void cvBackProjectPCA( const CvArr* proj, const CvArr* mean,
1585 const CvArr* eigenvects, CvArr* result );
1588 extern "C" double cvMahalanobis( const CvArr* vec1, const CvArr* vec2, const CvArr* mat );
1596 extern "C" CvScalar cvSum( const CvArr* arr );
1599 extern "C" int cvCountNonZero( const CvArr* arr );
1602 extern "C" CvScalar cvAvg( const CvArr* arr, const CvArr* mask = NULL );
1605 extern "C" void cvAvgSdv( const CvArr* arr, CvScalar* mean, CvScalar* std_dev,
1606 const CvArr* mask = NULL );
1609 extern "C" void cvMinMaxLoc( const CvArr* arr, double* min_val, double* max_val,
1610 CvPoint* min_loc = NULL,
1611 CvPoint* max_loc = NULL,
1612 const CvArr* mask = NULL );
1613 # 880 "../../../include/opencv/cxcore.h"
1614 extern "C" double cvNorm( const CvArr* arr1, const CvArr* arr2 = NULL,
1616 const CvArr* mask = NULL );
1618 extern "C" void cvNormalize( const CvArr* src, CvArr* dst,
1619 double a = 1., double b = 0.,
1621 const CvArr* mask = NULL );
1629 extern "C" void cvReduce( const CvArr* src, CvArr* dst, int dim = -1,
1631 # 914 "../../../include/opencv/cxcore.h"
1632 extern "C" void cvDFT( const CvArr* src, CvArr* dst, int flags,
1633 int nonzero_rows = 0 );
1637 extern "C" void cvMulSpectrums( const CvArr* src1, const CvArr* src2,
1638 CvArr* dst, int flags );
1641 extern "C" int cvGetOptimalDFTSize( int size0 );
1644 extern "C" void cvDCT( const CvArr* src, CvArr* dst, int flags );
1651 extern "C" int cvSliceLength( CvSlice slice, const CvSeq* seq );
1657 extern "C" CvMemStorage* cvCreateMemStorage( int block_size = 0);
1661 extern "C" CvMemStorage* cvCreateChildMemStorage( CvMemStorage* parent );
1666 extern "C" void cvReleaseMemStorage( CvMemStorage** storage );
1673 extern "C" void cvClearMemStorage( CvMemStorage* storage );
1676 extern "C" void cvSaveMemStoragePos( const CvMemStorage* storage, CvMemStoragePos* pos );
1679 extern "C" void cvRestoreMemStoragePos( CvMemStorage* storage, CvMemStoragePos* pos );
1682 extern "C" void* cvMemStorageAlloc( CvMemStorage* storage, size_t size );
1685 extern "C" CvString cvMemStorageAllocString( CvMemStorage* storage, const char* ptr,
1689 extern "C" CvSeq* cvCreateSeq( int seq_flags, int header_size,
1690 int elem_size, CvMemStorage* storage );
1694 extern "C" void cvSetSeqBlockSize( CvSeq* seq, int delta_elems );
1698 extern "C" schar* cvSeqPush( CvSeq* seq, const void* element = NULL);
1702 extern "C" schar* cvSeqPushFront( CvSeq* seq, const void* element = NULL);
1706 extern "C" void cvSeqPop( CvSeq* seq, void* element = NULL);
1710 extern "C" void cvSeqPopFront( CvSeq* seq, void* element = NULL);
1716 extern "C" void cvSeqPushMulti( CvSeq* seq, const void* elements,
1717 int count, int in_front = 0 );
1720 extern "C" void cvSeqPopMulti( CvSeq* seq, void* elements,
1721 int count, int in_front = 0 );
1725 extern "C" schar* cvSeqInsert( CvSeq* seq, int before_index,
1726 const void* element = NULL);
1729 extern "C" void cvSeqRemove( CvSeq* seq, int index );
1735 extern "C" void cvClearSeq( CvSeq* seq );
1741 extern "C" schar* cvGetSeqElem( const CvSeq* seq, int index );
1745 extern "C" int cvSeqElemIdx( const CvSeq* seq, const void* element,
1746 CvSeqBlock** block = NULL );
1749 extern "C" void cvStartAppendToSeq( CvSeq* seq, CvSeqWriter* writer );
1753 extern "C" void cvStartWriteSeq( int seq_flags, int header_size,
1754 int elem_size, CvMemStorage* storage,
1755 CvSeqWriter* writer );
1761 extern "C" CvSeq* cvEndWriteSeq( CvSeqWriter* writer );
1766 extern "C" void cvFlushSeqWriter( CvSeqWriter* writer );
1771 extern "C" void cvStartReadSeq( const CvSeq* seq, CvSeqReader* reader,
1776 extern "C" int cvGetSeqReaderPos( CvSeqReader* reader );
1781 extern "C" void cvSetSeqReaderPos( CvSeqReader* reader, int index,
1782 int is_relative = 0);
1785 extern "C" void* cvCvtSeqToArray( const CvSeq* seq, void* elements,
1786 CvSlice slice = cvSlice(0, 0x3fffffff) );
1791 extern "C" CvSeq* cvMakeSeqHeaderForArray( int seq_type, int header_size,
1792 int elem_size, void* elements, int total,
1793 CvSeq* seq, CvSeqBlock* block );
1796 extern "C" CvSeq* cvSeqSlice( const CvSeq* seq, CvSlice slice,
1797 CvMemStorage* storage = NULL,
1800 inline CvSeq* cvCloneSeq( const CvSeq* seq, CvMemStorage* storage = NULL)
1802 return cvSeqSlice( seq, cvSlice(0, 0x3fffffff), storage, 1 );
1806 extern "C" void cvSeqRemoveSlice( CvSeq* seq, CvSlice slice );
1809 extern "C" void cvSeqInsertSlice( CvSeq* seq, int before_index, const CvArr* from_arr );
1812 typedef int (* CvCmpFunc)(const void* a, const void* b, void* userdata );
1815 extern "C" void cvSeqSort( CvSeq* seq, CvCmpFunc func, void* userdata = NULL );
1818 extern "C" schar* cvSeqSearch( CvSeq* seq, const void* elem, CvCmpFunc func,
1819 int is_sorted, int* elem_idx,
1820 void* userdata = NULL );
1823 extern "C" void cvSeqInvert( CvSeq* seq );
1826 extern "C" int cvSeqPartition( const CvSeq* seq, CvMemStorage* storage,
1827 CvSeq** labels, CvCmpFunc is_equal, void* userdata );
1830 extern "C" void cvChangeSeqBlock( void* reader, int direction );
1831 extern "C" void cvCreateSeqBlock( CvSeqWriter* writer );
1835 extern "C" CvSet* cvCreateSet( int set_flags, int header_size,
1836 int elem_size, CvMemStorage* storage );
1839 extern "C" int cvSetAdd( CvSet* set_header, CvSetElem* elem = NULL,
1840 CvSetElem** inserted_elem = NULL );
1843 inline CvSetElem* cvSetNew( CvSet* set_header )
1845 CvSetElem* elem = set_header->free_elems;
1848 set_header->free_elems = elem->next_free;
1849 elem->flags = elem->flags & ((1 << 26) - 1);
1850 set_header->active_count++;
1853 cvSetAdd( set_header, NULL, (CvSetElem**)&elem );
1858 inline void cvSetRemoveByPtr( CvSet* set_header, void* elem )
1860 CvSetElem* _elem = (CvSetElem*)elem;
1861 assert( _elem->flags >= 0 );
1862 _elem->next_free = set_header->free_elems;
1863 _elem->flags = (_elem->flags & ((1 << 26) - 1)) | (1 << (sizeof(int)*8-1));
1864 set_header->free_elems = _elem;
1865 set_header->active_count--;
1869 extern "C" void cvSetRemove( CvSet* set_header, int index );
1873 inline CvSetElem* cvGetSetElem( const CvSet* set_header, int index )
1875 CvSetElem* elem = (CvSetElem*)cvGetSeqElem( (CvSeq*)set_header, index );
1876 return elem && (((CvSetElem*)(elem))->flags >= 0) ? elem : 0;
1880 extern "C" void cvClearSet( CvSet* set_header );
1883 extern "C" CvGraph* cvCreateGraph( int graph_flags, int header_size,
1884 int vtx_size, int edge_size,
1885 CvMemStorage* storage );
1888 extern "C" int cvGraphAddVtx( CvGraph* graph, const CvGraphVtx* vtx = NULL,
1889 CvGraphVtx** inserted_vtx = NULL );
1893 extern "C" int cvGraphRemoveVtx( CvGraph* graph, int index );
1894 extern "C" int cvGraphRemoveVtxByPtr( CvGraph* graph, CvGraphVtx* vtx );
1901 extern "C" int cvGraphAddEdge( CvGraph* graph,
1902 int start_idx, int end_idx,
1903 const CvGraphEdge* edge = NULL,
1904 CvGraphEdge** inserted_edge = NULL );
1906 extern "C" int cvGraphAddEdgeByPtr( CvGraph* graph,
1907 CvGraphVtx* start_vtx, CvGraphVtx* end_vtx,
1908 const CvGraphEdge* edge = NULL,
1909 CvGraphEdge** inserted_edge = NULL );
1912 extern "C" void cvGraphRemoveEdge( CvGraph* graph, int start_idx, int end_idx );
1913 extern "C" void cvGraphRemoveEdgeByPtr( CvGraph* graph, CvGraphVtx* start_vtx,
1914 CvGraphVtx* end_vtx );
1917 extern "C" CvGraphEdge* cvFindGraphEdge( const CvGraph* graph, int start_idx, int end_idx );
1918 extern "C" CvGraphEdge* cvFindGraphEdgeByPtr( const CvGraph* graph,
1919 const CvGraphVtx* start_vtx,
1920 const CvGraphVtx* end_vtx );
1925 extern "C" void cvClearGraph( CvGraph* graph );
1929 extern "C" int cvGraphVtxDegree( const CvGraph* graph, int vtx_idx );
1930 extern "C" int cvGraphVtxDegreeByPtr( const CvGraph* graph, const CvGraphVtx* vtx );
1931 # 1248 "../../../include/opencv/cxcore.h"
1932 typedef struct CvGraphScanner
1946 extern "C" CvGraphScanner* cvCreateGraphScanner( CvGraph* graph,
1947 CvGraphVtx* vtx = NULL,
1951 extern "C" void cvReleaseGraphScanner( CvGraphScanner** scanner );
1954 extern "C" int cvNextGraphItem( CvGraphScanner* scanner );
1957 extern "C" CvGraph* cvCloneGraph( const CvGraph* graph, CvMemStorage* storage );
1958 # 1295 "../../../include/opencv/cxcore.h"
1959 extern "C" void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2,
1960 CvScalar color, int thickness = 1,
1961 int line_type = 8, int shift = 0 );
1965 extern "C" void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2,
1966 CvScalar color, int thickness = 1,
1972 extern "C" void cvCircle( CvArr* img, CvPoint center, int radius,
1973 CvScalar color, int thickness = 1,
1974 int line_type = 8, int shift = 0);
1979 extern "C" void cvEllipse( CvArr* img, CvPoint center, CvSize axes,
1980 double angle, double start_angle, double end_angle,
1981 CvScalar color, int thickness = 1,
1982 int line_type = 8, int shift = 0);
1984 inline void cvEllipseBox( CvArr* img, CvBox2D box, CvScalar color,
1986 int line_type = 8, int shift = 0 )
1989 axes.width = cvRound(box.size.height*0.5);
1990 axes.height = cvRound(box.size.width*0.5);
1992 cvEllipse( img, cvPointFrom32f( box.center ), axes, box.angle,
1993 0, 360, color, thickness, line_type, shift );
1997 extern "C" void cvFillConvexPoly( CvArr* img, const CvPoint* pts, int npts, CvScalar color,
1998 int line_type = 8, int shift = 0);
2001 extern "C" void cvFillPoly( CvArr* img, CvPoint** pts, const int* npts,
2002 int contours, CvScalar color,
2003 int line_type = 8, int shift = 0 );
2006 extern "C" void cvPolyLine( CvArr* img, CvPoint** pts, const int* npts, int contours,
2007 int is_closed, CvScalar color, int thickness = 1,
2008 int line_type = 8, int shift = 0 );
2009 # 1355 "../../../include/opencv/cxcore.h"
2010 extern "C" int cvClipLine( CvSize img_size, CvPoint* pt1, CvPoint* pt2 );
2015 extern "C" int cvInitLineIterator( const CvArr* image, CvPoint pt1, CvPoint pt2,
2016 CvLineIterator* line_iterator,
2017 int connectivity = 8,
2018 int left_to_right = 0);
2019 # 1392 "../../../include/opencv/cxcore.h"
2020 typedef struct CvFont
2025 const int* cyrillic;
2026 float hscale, vscale;
2035 extern "C" void cvInitFont( CvFont* font, int font_face,
2036 double hscale, double vscale,
2041 inline CvFont cvFont( double scale, int thickness = 1 )
2044 cvInitFont( &font, 1, scale, scale, 0, thickness, 16 );
2050 extern "C" void cvPutText( CvArr* img, const char* text, CvPoint org,
2051 const CvFont* font, CvScalar color );
2054 extern "C" void cvGetTextSize( const char* text_string, const CvFont* font,
2055 CvSize* text_size, int* baseline );
2060 extern "C" CvScalar cvColorToScalar( double packed_color, int arrtype );
2068 extern "C" int cvEllipse2Poly( CvPoint center, CvSize axes,
2069 int angle, int arc_start, int arc_end, CvPoint * pts, int delta );
2072 extern "C" void cvDrawContours( CvArr *img, CvSeq* contour,
2073 CvScalar external_color, CvScalar hole_color,
2074 int max_level, int thickness = 1,
2076 CvPoint offset = cvPoint(0,0));
2080 extern "C" void cvLUT( const CvArr* src, CvArr* dst, const CvArr* lut );
2084 typedef struct CvTreeNodeIterator
2092 extern "C" void cvInitTreeNodeIterator( CvTreeNodeIterator* tree_iterator,
2093 const void* first, int max_level );
2094 extern "C" void* cvNextTreeNode( CvTreeNodeIterator* tree_iterator );
2095 extern "C" void* cvPrevTreeNode( CvTreeNodeIterator* tree_iterator );
2100 extern "C" void cvInsertNodeIntoTree( void* node, void* parent, void* frame );
2103 extern "C" void cvRemoveNodeFromTree( void* node, void* frame );
2107 extern "C" CvSeq* cvTreeToNodeSeq( const void* first, int header_size,
2108 CvMemStorage* storage );
2113 extern "C" int cvKMeans2( const CvArr* samples, int cluster_count, CvArr* labels,
2114 CvTermCriteria termcrit, int attempts = 1,
2115 CvRNG* rng = 0, int flags = 0,
2116 CvArr* _centers = 0, double* compactness = 0 );
2123 extern "C" int cvRegisterModule( const CvModuleInfo* module_info );
2126 extern "C" int cvUseOptimized( int on_off );
2129 extern "C" void cvGetModuleInfo( const char* module_name,
2130 const char** version,
2131 const char** loaded_addon_plugins );
2134 extern "C" int cvGetErrStatus( void );
2137 extern "C" void cvSetErrStatus( int status );
2144 extern "C" int cvGetErrMode( void );
2147 extern "C" int cvSetErrMode( int mode );
2152 extern "C" void cvError( int status, const char* func_name,
2153 const char* err_msg, const char* file_name, int line );
2156 extern "C" const char* cvErrorStr( int status );
2159 extern "C" int cvGetErrInfo( const char** errcode_desc, const char** description,
2160 const char** filename, int* line );
2163 extern "C" int cvErrorFromIppStatus( int ipp_status );
2165 typedef int ( *CvErrorCallback)( int status, const char* func_name,
2166 const char* err_msg, const char* file_name, int line, void* userdata );
2169 extern "C" CvErrorCallback cvRedirectError( CvErrorCallback error_handler,
2170 void* userdata = NULL,
2171 void** prev_userdata = NULL );
2179 extern "C" int cvNulDevReport( int status, const char* func_name, const char* err_msg,
2180 const char* file_name, int line, void* userdata );
2182 extern "C" int cvStdErrReport( int status, const char* func_name, const char* err_msg,
2183 const char* file_name, int line, void* userdata );
2185 extern "C" int cvGuiBoxReport( int status, const char* func_name, const char* err_msg,
2186 const char* file_name, int line, void* userdata );
2188 typedef void* ( *CvAllocFunc)(size_t size, void* userdata);
2189 typedef int ( *CvFreeFunc)(void* pptr, void* userdata);
2193 extern "C" void cvSetMemoryManager( CvAllocFunc alloc_func = NULL,
2194 CvFreeFunc free_func = NULL,
2195 void* userdata = NULL);
2198 typedef IplImage* (* Cv_iplCreateImageHeader)
2199 (int,int,int,char*,char*,int,int,int,int,int,
2200 IplROI*,IplImage*,void*,IplTileInfo*);
2201 typedef void (* Cv_iplAllocateImageData)(IplImage*,int,int);
2202 typedef void (* Cv_iplDeallocate)(IplImage*,int);
2203 typedef IplROI* (* Cv_iplCreateROI)(int,int,int,int,int);
2204 typedef IplImage* (* Cv_iplCloneImage)(const IplImage*);
2207 extern "C" void cvSetIPLAllocators( Cv_iplCreateImageHeader create_header,
2208 Cv_iplAllocateImageData allocate_data,
2209 Cv_iplDeallocate deallocate,
2210 Cv_iplCreateROI create_roi,
2211 Cv_iplCloneImage clone_image );
2212 # 1596 "../../../include/opencv/cxcore.h"
2213 extern "C" CvFileStorage* cvOpenFileStorage( const char* filename,
2214 CvMemStorage* memstorage,
2218 extern "C" void cvReleaseFileStorage( CvFileStorage** fs );
2221 extern "C" const char* cvAttrValue( const CvAttrList* attr, const char* attr_name );
2224 extern "C" void cvStartWriteStruct( CvFileStorage* fs, const char* name,
2225 int struct_flags, const char* type_name = NULL,
2226 CvAttrList attributes = cvAttrList());
2229 extern "C" void cvEndWriteStruct( CvFileStorage* fs );
2232 extern "C" void cvWriteInt( CvFileStorage* fs, const char* name, int value );
2235 extern "C" void cvWriteReal( CvFileStorage* fs, const char* name, double value );
2238 extern "C" void cvWriteString( CvFileStorage* fs, const char* name,
2239 const char* str, int quote = 0 );
2242 extern "C" void cvWriteComment( CvFileStorage* fs, const char* comment,
2247 extern "C" void cvWrite( CvFileStorage* fs, const char* name, const void* ptr,
2248 CvAttrList attributes = cvAttrList());
2251 extern "C" void cvStartNextStream( CvFileStorage* fs );
2254 extern "C" void cvWriteRawData( CvFileStorage* fs, const void* src,
2255 int len, const char* dt );
2259 extern "C" CvStringHashNode* cvGetHashedKey( CvFileStorage* fs, const char* name,
2261 int create_missing = 0);
2265 extern "C" CvFileNode* cvGetRootFileNode( const CvFileStorage* fs,
2266 int stream_index = 0 );
2270 extern "C" CvFileNode* cvGetFileNode( CvFileStorage* fs, CvFileNode* map,
2271 const CvStringHashNode* key,
2272 int create_missing = 0 );
2275 extern "C" CvFileNode* cvGetFileNodeByName( const CvFileStorage* fs,
2276 const CvFileNode* map,
2279 inline int cvReadInt( const CvFileNode* node, int default_value = 0 )
2281 return !node ? default_value :
2282 (((node->tag) & 7) == 1) ? node->data.i :
2283 (((node->tag) & 7) == 2) ? cvRound(node->data.f) : 0x7fffffff;
2287 inline int cvReadIntByName( const CvFileStorage* fs, const CvFileNode* map,
2288 const char* name, int default_value = 0 )
2290 return cvReadInt( cvGetFileNodeByName( fs, map, name ), default_value );
2294 inline double cvReadReal( const CvFileNode* node, double default_value = 0. )
2296 return !node ? default_value :
2297 (((node->tag) & 7) == 1) ? (double)node->data.i :
2298 (((node->tag) & 7) == 2) ? node->data.f : 1e300;
2302 inline double cvReadRealByName( const CvFileStorage* fs, const CvFileNode* map,
2303 const char* name, double default_value = 0. )
2305 return cvReadReal( cvGetFileNodeByName( fs, map, name ), default_value );
2309 inline const char* cvReadString( const CvFileNode* node,
2310 const char* default_value = NULL )
2312 return !node ? default_value : (((node->tag) & 7) == 3) ? node->data.str.ptr : 0;
2316 inline const char* cvReadStringByName( const CvFileStorage* fs, const CvFileNode* map,
2317 const char* name, const char* default_value = NULL )
2319 return cvReadString( cvGetFileNodeByName( fs, map, name ), default_value );
2324 extern "C" void* cvRead( CvFileStorage* fs, CvFileNode* node,
2325 CvAttrList* attributes = NULL);
2328 inline void* cvReadByName( CvFileStorage* fs, const CvFileNode* map,
2329 const char* name, CvAttrList* attributes = NULL )
2331 return cvRead( fs, cvGetFileNodeByName( fs, map, name ), attributes );
2336 extern "C" void cvStartReadRawData( const CvFileStorage* fs, const CvFileNode* src,
2337 CvSeqReader* reader );
2340 extern "C" void cvReadRawDataSlice( const CvFileStorage* fs, CvSeqReader* reader,
2341 int count, void* dst, const char* dt );
2344 extern "C" void cvReadRawData( const CvFileStorage* fs, const CvFileNode* src,
2345 void* dst, const char* dt );
2348 extern "C" void cvWriteFileNode( CvFileStorage* fs, const char* new_node_name,
2349 const CvFileNode* node, int embed );
2352 extern "C" const char* cvGetFileNodeName( const CvFileNode* node );
2356 extern "C" void cvRegisterType( const CvTypeInfo* info );
2357 extern "C" void cvUnregisterType( const char* type_name );
2358 extern "C" CvTypeInfo* cvFirstType(void);
2359 extern "C" CvTypeInfo* cvFindType( const char* type_name );
2360 extern "C" CvTypeInfo* cvTypeOf( const void* struct_ptr );
2363 extern "C" void cvRelease( void** struct_ptr );
2364 extern "C" void* cvClone( const void* struct_ptr );
2367 extern "C" void cvSave( const char* filename, const void* struct_ptr,
2368 const char* name = NULL,
2369 const char* comment = NULL,
2370 CvAttrList attributes = cvAttrList());
2371 extern "C" void* cvLoad( const char* filename,
2372 CvMemStorage* memstorage = NULL,
2373 const char* name = NULL,
2374 const char** real_name = NULL );
2380 extern "C" int64 cvGetTickCount( void );
2381 extern "C" double cvGetTickFrequency( void );
2386 extern "C" int cvGetNumThreads( void );
2387 extern "C" void cvSetNumThreads( int threads = 0 );
2389 extern "C" int cvGetThreadNum( void );
2393 typedef IplImage* ( * CvLoadImageFunc)( const char* filename, int colorness );
2394 typedef CvMat* ( * CvLoadImageMFunc)( const char* filename, int colorness );
2395 typedef int ( * CvSaveImageFunc)( const char* filename, const CvArr* image,
2396 const int* params );
2397 typedef void ( * CvShowImageFunc)( const char* windowname, const CvArr* image );
2399 extern "C" int cvSetImageIOFunctions( CvLoadImageFunc _load_image, CvLoadImageMFunc _load_image_m,
2400 CvSaveImageFunc _save_image, CvShowImageFunc _show_image );
2411 CvImage() : image(0), refcount(0) {}
2412 CvImage( CvSize size, int depth, int channels )
2414 image = cvCreateImage( size, depth, channels );
2415 refcount = image ? new int(1) : 0;
2418 CvImage( IplImage* img ) : image(img)
2420 refcount = image ? new int(1) : 0;
2423 CvImage( const CvImage& img ) : image(img.image), refcount(img.refcount)
2425 if( refcount ) ++(*refcount);
2428 CvImage( const char* filename, const char* imgname=0, int color=-1 ) : image(0), refcount(0)
2429 { load( filename, imgname, color ); }
2431 CvImage( CvFileStorage* fs, const char* mapname, const char* imgname ) : image(0), refcount(0)
2432 { read( fs, mapname, imgname ); }
2434 CvImage( CvFileStorage* fs, const char* seqname, int idx ) : image(0), refcount(0)
2435 { read( fs, seqname, idx ); }
2439 if( refcount && !(--*refcount) )
2441 cvReleaseImage( &image );
2446 CvImage clone() { return CvImage(image ? cvCloneImage(image) : 0); }
2448 void create( CvSize size, int depth, int channels )
2450 if( !image || !refcount ||
2451 image->width != size.width || image->height != size.height ||
2452 image->depth != depth || image->nChannels != channels )
2453 attach( cvCreateImage( size, depth, channels ));
2456 void release() { detach(); }
2457 void clear() { detach(); }
2459 void attach( IplImage* img, bool use_refcount=true )
2461 if( refcount && --*refcount == 0 )
2463 cvReleaseImage( &image );
2467 refcount = use_refcount && image ? new int(1) : 0;
2472 if( refcount && --*refcount == 0 )
2474 cvReleaseImage( &image );
2481 bool load( const char* filename, const char* imgname=0, int color=-1 );
2482 bool read( CvFileStorage* fs, const char* mapname, const char* imgname );
2483 bool read( CvFileStorage* fs, const char* seqname, int idx );
2484 void save( const char* filename, const char* imgname, const int* params=0 );
2485 void write( CvFileStorage* fs, const char* imgname );
2487 void show( const char* window_name );
2488 bool is_valid() { return image != 0; }
2490 int width() const { return image ? image->width : 0; }
2491 int height() const { return image ? image->height : 0; }
2493 CvSize size() const { return image ? cvSize(image->width, image->height) : cvSize(0,0); }
2495 CvSize roi_size() const
2497 return !image ? cvSize(0,0) :
2498 !image->roi ? cvSize(image->width,image->height) :
2499 cvSize(image->roi->width, image->roi->height);
2504 return !image ? cvRect(0,0,0,0) :
2505 !image->roi ? cvRect(0,0,image->width,image->height) :
2506 cvRect(image->roi->xOffset,image->roi->yOffset,
2507 image->roi->width,image->roi->height);
2510 int coi() const { return !image || !image->roi ? 0 : image->roi->coi; }
2512 void set_roi(CvRect roi) { cvSetImageROI(image,roi); }
2513 void reset_roi() { cvResetImageROI(image); }
2514 void set_coi(int coi) { cvSetImageCOI(image,coi); }
2515 int depth() const { return image ? image->depth : 0; }
2516 int channels() const { return image ? image->nChannels : 0; }
2517 int pix_size() const { return image ? ((image->depth & 255)>>3)*image->nChannels : 0; }
2519 uchar* data() { return image ? (uchar*)image->imageData : 0; }
2520 const uchar* data() const { return image ? (const uchar*)image->imageData : 0; }
2521 int step() const { return image ? image->widthStep : 0; }
2522 int origin() const { return image ? image->origin : 0; }
2524 uchar* roi_row(int y)
2529 y<image->roi->height : y<image->height);
2533 (uchar*)(image->imageData + y*image->widthStep) :
2534 (uchar*)(image->imageData + (y+image->roi->yOffset)*image->widthStep +
2535 image->roi->xOffset*((image->depth & 255)>>3)*image->nChannels);
2538 const uchar* roi_row(int y) const
2543 y<image->roi->height : y<image->height);
2547 (const uchar*)(image->imageData + y*image->widthStep) :
2548 (const uchar*)(image->imageData + (y+image->roi->yOffset)*image->widthStep +
2549 image->roi->xOffset*((image->depth & 255)>>3)*image->nChannels);
2552 operator const IplImage* () const { return image; }
2553 operator IplImage* () { return image; }
2555 CvImage& operator = (const CvImage& img)
2559 if( refcount && !(--*refcount) )
2560 cvReleaseImage( &image );
2562 refcount=img.refcount;
2575 CvMatrix() : matrix(0) {}
2576 CvMatrix( int rows, int cols, int type )
2577 { matrix = cvCreateMat( rows, cols, type ); }
2579 CvMatrix( int rows, int cols, int type, CvMat* hdr,
2580 void* data=0, int step=0x7fffffff )
2581 { matrix = cvInitMatHeader( hdr, rows, cols, type, data, step ); }
2583 CvMatrix( int rows, int cols, int type, CvMemStorage* storage, bool alloc_data=true );
2585 CvMatrix( int rows, int cols, int type, void* data, int step=0x7fffffff )
2586 { matrix = cvCreateMatHeader( rows, cols, type );
2587 cvSetData( matrix, data, step ); }
2589 CvMatrix( CvMat* m )
2592 CvMatrix( const CvMatrix& m )
2598 CvMatrix( const char* filename, const char* matname=0, int color=-1 ) : matrix(0)
2599 { load( filename, matname, color ); }
2601 CvMatrix( CvFileStorage* fs, const char* mapname, const char* matname ) : matrix(0)
2602 { read( fs, mapname, matname ); }
2604 CvMatrix( CvFileStorage* fs, const char* seqname, int idx ) : matrix(0)
2605 { read( fs, seqname, idx ); }
2612 CvMatrix clone() { return CvMatrix(matrix ? cvCloneMat(matrix) : 0); }
2614 void set( CvMat* m, bool add_ref )
2622 void create( int rows, int cols, int type )
2624 if( !matrix || !matrix->refcount ||
2625 matrix->rows != rows || matrix->cols != cols ||
2626 ((matrix->type) & ((1 << 3)*64 - 1)) != type )
2627 set( cvCreateMat( rows, cols, type ), false );
2634 if( matrix->hdr_refcount )
2635 ++matrix->hdr_refcount;
2636 else if( matrix->refcount )
2637 ++*matrix->refcount;
2645 if( matrix->hdr_refcount )
2647 if( --matrix->hdr_refcount == 0 )
2648 cvReleaseMat( &matrix );
2650 else if( matrix->refcount )
2652 if( --*matrix->refcount == 0 )
2653 (cvFree_(*(&matrix->refcount)), *(&matrix->refcount)=0);
2664 bool load( const char* filename, const char* matname=0, int color=-1 );
2665 bool read( CvFileStorage* fs, const char* mapname, const char* matname );
2666 bool read( CvFileStorage* fs, const char* seqname, int idx );
2667 void save( const char* filename, const char* matname, const int* params=0 );
2668 void write( CvFileStorage* fs, const char* matname );
2670 void show( const char* window_name );
2672 bool is_valid() { return matrix != 0; }
2674 int rows() const { return matrix ? matrix->rows : 0; }
2675 int cols() const { return matrix ? matrix->cols : 0; }
2679 return !matrix ? cvSize(0,0) : cvSize(matrix->rows,matrix->cols);
2682 int type() const { return matrix ? ((matrix->type) & ((1 << 3)*64 - 1)) : 0; }
2683 int depth() const { return matrix ? ((matrix->type) & ((1 << 3) - 1)) : 0; }
2684 int channels() const { return matrix ? ((((matrix->type) & ((64 - 1) << 3)) >> 3) + 1) : 0; }
2685 int pix_size() const { return matrix ? (((((matrix->type) & ((64 - 1) << 3)) >> 3) + 1) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> ((matrix->type) & ((1 << 3) - 1))*2) & 3)) : 0; }
2687 uchar* data() { return matrix ? matrix->data.ptr : 0; }
2688 const uchar* data() const { return matrix ? matrix->data.ptr : 0; }
2689 int step() const { return matrix ? matrix->step : 0; }
2691 void set_data( void* data, int step=0x7fffffff )
2692 { cvSetData( matrix, data, step ); }
2694 uchar* row(int i) { return !matrix ? 0 : matrix->data.ptr + i*matrix->step; }
2695 const uchar* row(int i) const
2696 { return !matrix ? 0 : matrix->data.ptr + i*matrix->step; }
2698 operator const CvMat* () const { return matrix; }
2699 operator CvMat* () { return matrix; }
2701 CvMatrix& operator = (const CvMatrix& _m)
2717 CvModule( CvModuleInfo* _info );
2721 static CvModuleInfo* first;
2722 static CvModuleInfo* last;
2727 CvType( const char* type_name,
2728 CvIsInstanceFunc is_instance, CvReleaseFunc release=0,
2729 CvReadFunc read=0, CvWriteFunc write=0, CvCloneFunc clone=0 );
2733 static CvTypeInfo* first;
2734 static CvTypeInfo* last;
2736 # 59 "../../../include/opencv/cv.h" 2
2737 # 1 "../../../include/opencv/cvtypes.h" 1
2738 # 51 "../../../include/opencv/cvtypes.h"
2739 typedef struct CvMoments
2741 double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
2742 double mu20, mu11, mu02, mu30, mu21, mu12, mu03;
2743 double inv_sqrt_m00;
2748 typedef struct CvHuMoments
2750 double hu1, hu2, hu3, hu4, hu5, hu6, hu7;
2756 typedef struct CvConnectedComp
2770 typedef struct _CvContourScanner* CvContourScanner;
2771 # 99 "../../../include/opencv/cvtypes.h"
2772 typedef struct CvChainPtReader
2774 int header_size; CvSeq* seq; CvSeqBlock* block; schar* ptr; schar* block_min; schar* block_max; int delta_index; schar* prev_elem;
2780 # 116 "../../../include/opencv/cvtypes.h"
2781 typedef struct CvContourTree
2783 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first;
2790 typedef struct CvConvexityDefect
2794 CvPoint* depth_point;
2801 typedef size_t CvSubdiv2DEdge;
2802 # 150 "../../../include/opencv/cvtypes.h"
2803 typedef struct CvQuadEdge2D
2805 int flags; struct CvSubdiv2DPoint* pt[4]; CvSubdiv2DEdge next[4];
2809 typedef struct CvSubdiv2DPoint
2811 int flags; CvSubdiv2DEdge first; CvPoint2D32f pt;
2814 # 170 "../../../include/opencv/cvtypes.h"
2815 typedef struct CvSubdiv2D
2817 int flags; int header_size; struct CvSeq* h_prev; struct CvSeq* h_next; struct CvSeq* v_prev; struct CvSeq* v_next; int total; int elem_size; schar* block_max; schar* ptr; int delta_elems; CvMemStorage* storage; CvSeqBlock* free_blocks; CvSeqBlock* first; CvSetElem* free_elems; int active_count; CvSet* edges; int quad_edges; int is_geometry_valid; CvSubdiv2DEdge recent_edge; CvPoint2D32f topleft; CvPoint2D32f bottomright;
2822 typedef enum CvSubdiv2DPointLocation
2824 CV_PTLOC_ERROR = -2,
2825 CV_PTLOC_OUTSIDE_RECT = -1,
2826 CV_PTLOC_INSIDE = 0,
2827 CV_PTLOC_VERTEX = 1,
2828 CV_PTLOC_ON_EDGE = 2
2830 CvSubdiv2DPointLocation;
2832 typedef enum CvNextEdgeType
2834 CV_NEXT_AROUND_ORG = 0x00,
2835 CV_NEXT_AROUND_DST = 0x22,
2836 CV_PREV_AROUND_ORG = 0x11,
2837 CV_PREV_AROUND_DST = 0x33,
2838 CV_NEXT_AROUND_LEFT = 0x13,
2839 CV_NEXT_AROUND_RIGHT = 0x31,
2840 CV_PREV_AROUND_LEFT = 0x20,
2841 CV_PREV_AROUND_RIGHT = 0x02
2844 # 216 "../../../include/opencv/cvtypes.h"
2845 typedef enum CvFilter
2855 typedef float* CvVect32f;
2856 typedef float* CvMatr32f;
2857 typedef double* CvVect64d;
2858 typedef double* CvMatr64d;
2860 typedef struct CvMatrix3
2871 typedef float ( * CvDistanceFunction)( const float* a, const float* b, void* user_param );
2877 typedef struct CvConDensation
2885 float** flNewSamples;
2886 float* flConfidence;
2887 float* flCumulative;
2889 float* RandomSample;
2890 struct CvRandState* RandS;
2900 typedef struct CvKalman
2911 float* MeasurementMatr;
2912 float* MNCovariance;
2913 float* PNCovariance;
2914 float* KalmGainMatr;
2915 float* PriorErrorCovariance;
2916 float* PosterErrorCovariance;
2925 CvMat* transition_matrix;
2926 CvMat* control_matrix;
2928 CvMat* measurement_matrix;
2929 CvMat* process_noise_cov;
2930 CvMat* measurement_noise_cov;
2931 CvMat* error_cov_pre;
2935 CvMat* error_cov_post;
2944 # 327 "../../../include/opencv/cvtypes.h"
2945 typedef struct CvHaarFeature
2956 typedef struct CvHaarClassifier
2959 CvHaarFeature* haar_feature;
2967 typedef struct CvHaarStageClassifier
2971 CvHaarClassifier* classifier;
2977 CvHaarStageClassifier;
2979 typedef struct CvHidHaarClassifierCascade CvHidHaarClassifierCascade;
2981 typedef struct CvHaarClassifierCascade
2985 CvSize orig_window_size;
2986 CvSize real_window_size;
2988 CvHaarStageClassifier* stage_classifier;
2989 CvHidHaarClassifierCascade* hid_cascade;
2991 CvHaarClassifierCascade;
2993 typedef struct CvAvgComp
3000 struct CvFeatureTree;
3001 # 60 "../../../include/opencv/cv.h" 2
3005 # 71 "../../../include/opencv/cv.h"
3006 extern "C" void cvCopyMakeBorder( const CvArr* src, CvArr* dst, CvPoint offset,
3007 int bordertype, CvScalar value = cvScalarAll(0));
3008 # 81 "../../../include/opencv/cv.h"
3009 extern "C" void cvSmooth( const CvArr* src, CvArr* dst,
3017 extern "C" void cvFilter2D( const CvArr* src, CvArr* dst, const CvMat* kernel,
3018 CvPoint anchor = cvPoint(-1,-1));
3021 extern "C" void cvIntegral( const CvArr* image, CvArr* sum,
3022 CvArr* sqsum = NULL,
3023 CvArr* tilted_sum = NULL);
3030 extern "C" void cvPyrDown( const CvArr* src, CvArr* dst,
3031 int filter = CV_GAUSSIAN_5x5 );
3038 extern "C" void cvPyrUp( const CvArr* src, CvArr* dst,
3039 int filter = CV_GAUSSIAN_5x5 );
3042 extern "C" CvMat** cvCreatePyramid( const CvArr* img, int extra_layers, double rate,
3043 const CvSize* layer_sizes = 0,
3046 int filter = CV_GAUSSIAN_5x5 );
3049 extern "C" void cvReleasePyramid( CvMat*** pyramid, int extra_layers );
3056 extern "C" void cvPyrSegmentation( IplImage* src, IplImage* dst,
3057 CvMemStorage* storage, CvSeq** comp,
3058 int level, double threshold1,
3059 double threshold2 );
3062 extern "C" void cvPyrMeanShiftFiltering( const CvArr* src, CvArr* dst,
3063 double sp, double sr, int max_level = 1,
3064 CvTermCriteria termcrit = cvTermCriteria(1 +2,5,1));
3067 extern "C" void cvWatershed( const CvArr* image, CvArr* markers );
3073 extern "C" void cvInpaint( const CvArr* src, const CvArr* inpaint_mask,
3074 CvArr* dst, double inpaintRange, int flags );
3082 extern "C" void cvSobel( const CvArr* src, CvArr* dst,
3083 int xorder, int yorder,
3084 int aperture_size = 3);
3087 extern "C" void cvLaplace( const CvArr* src, CvArr* dst,
3088 int aperture_size = 3 );
3089 # 258 "../../../include/opencv/cv.h"
3090 extern "C" void cvCvtColor( const CvArr* src, CvArr* dst, int code );
3091 # 269 "../../../include/opencv/cv.h"
3092 extern "C" void cvResize( const CvArr* src, CvArr* dst,
3093 int interpolation = 1);
3096 extern "C" void cvWarpAffine( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
3098 CvScalar fillval = cvScalarAll(0) );
3101 extern "C" CvMat* cvGetAffineTransform( const CvPoint2D32f * src,
3102 const CvPoint2D32f * dst,
3103 CvMat * map_matrix );
3106 extern "C" CvMat* cv2DRotationMatrix( CvPoint2D32f center, double angle,
3107 double scale, CvMat* map_matrix );
3110 extern "C" void cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix,
3112 CvScalar fillval = cvScalarAll(0) );
3115 extern "C" CvMat* cvGetPerspectiveTransform( const CvPoint2D32f* src,
3116 const CvPoint2D32f* dst,
3117 CvMat* map_matrix );
3120 extern "C" void cvRemap( const CvArr* src, CvArr* dst,
3121 const CvArr* mapx, const CvArr* mapy,
3123 CvScalar fillval = cvScalarAll(0) );
3126 extern "C" void cvConvertMaps( const CvArr* mapx, const CvArr* mapy,
3127 CvArr* mapxy, CvArr* mapalpha );
3130 extern "C" void cvLogPolar( const CvArr* src, CvArr* dst,
3131 CvPoint2D32f center, double M,
3135 extern "C" void cvLinearPolar( const CvArr* src, CvArr* dst,
3136 CvPoint2D32f center, double maxRadius,
3145 extern "C" IplConvKernel* cvCreateStructuringElementEx(
3146 int cols, int rows, int anchor_x, int anchor_y,
3147 int shape, int* values = NULL );
3150 extern "C" void cvReleaseStructuringElement( IplConvKernel** element );
3154 extern "C" void cvErode( const CvArr* src, CvArr* dst,
3155 IplConvKernel* element = NULL,
3156 int iterations = 1 );
3160 extern "C" void cvDilate( const CvArr* src, CvArr* dst,
3161 IplConvKernel* element = NULL,
3162 int iterations = 1 );
3163 # 348 "../../../include/opencv/cv.h"
3164 extern "C" void cvMorphologyEx( const CvArr* src, CvArr* dst,
3165 CvArr* temp, IplConvKernel* element,
3166 int operation, int iterations = 1 );
3169 extern "C" void cvMoments( const CvArr* arr, CvMoments* moments, int binary = 0);
3172 extern "C" double cvGetSpatialMoment( CvMoments* moments, int x_order, int y_order );
3173 extern "C" double cvGetCentralMoment( CvMoments* moments, int x_order, int y_order );
3174 extern "C" double cvGetNormalizedCentralMoment( CvMoments* moments,
3175 int x_order, int y_order );
3178 extern "C" void cvGetHuMoments( CvMoments* moments, CvHuMoments* hu_moments );
3184 extern "C" int cvSampleLine( const CvArr* image, CvPoint pt1, CvPoint pt2, void* buffer,
3185 int connectivity = 8);
3190 extern "C" void cvGetRectSubPix( const CvArr* src, CvArr* dst, CvPoint2D32f center );
3198 extern "C" void cvGetQuadrangleSubPix( const CvArr* src, CvArr* dst,
3199 const CvMat* map_matrix );
3200 # 395 "../../../include/opencv/cv.h"
3201 extern "C" void cvMatchTemplate( const CvArr* image, const CvArr* templ,
3202 CvArr* result, int method );
3206 extern "C" float cvCalcEMD2( const CvArr* signature1,
3207 const CvArr* signature2,
3209 CvDistanceFunction distance_func = NULL,
3210 const CvArr* cost_matrix = NULL,
3212 float* lower_bound = NULL,
3213 void* userdata = NULL);
3221 extern "C" int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,
3222 int header_size = sizeof(CvContour),
3225 CvPoint offset = cvPoint(0,0));
3233 extern "C" CvContourScanner cvStartFindContours( CvArr* image, CvMemStorage* storage,
3234 int header_size = sizeof(CvContour),
3237 CvPoint offset = cvPoint(0,0));
3240 extern "C" CvSeq* cvFindNextContour( CvContourScanner scanner );
3245 extern "C" void cvSubstituteContour( CvContourScanner scanner, CvSeq* new_contour );
3249 extern "C" CvSeq* cvEndFindContours( CvContourScanner* scanner );
3252 extern "C" CvSeq* cvApproxChains( CvSeq* src_seq, CvMemStorage* storage,
3254 double parameter = 0,
3255 int minimal_perimeter = 0,
3262 extern "C" void cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );
3265 extern "C" CvPoint cvReadChainPoint( CvChainPtReader* reader );
3266 # 469 "../../../include/opencv/cv.h"
3267 extern "C" void cvCalcOpticalFlowLK( const CvArr* prev, const CvArr* curr,
3268 CvSize win_size, CvArr* velx, CvArr* vely );
3271 extern "C" void cvCalcOpticalFlowBM( const CvArr* prev, const CvArr* curr,
3272 CvSize block_size, CvSize shift_size,
3273 CvSize max_range, int use_previous,
3274 CvArr* velx, CvArr* vely );
3277 extern "C" void cvCalcOpticalFlowHS( const CvArr* prev, const CvArr* curr,
3278 int use_previous, CvArr* velx, CvArr* vely,
3279 double lambda, CvTermCriteria criteria );
3280 # 493 "../../../include/opencv/cv.h"
3281 extern "C" void cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr,
3282 CvArr* prev_pyr, CvArr* curr_pyr,
3283 const CvPoint2D32f* prev_features,
3284 CvPoint2D32f* curr_features,
3290 CvTermCriteria criteria,
3296 extern "C" void cvCalcAffineFlowPyrLK( const CvArr* prev, const CvArr* curr,
3297 CvArr* prev_pyr, CvArr* curr_pyr,
3298 const CvPoint2D32f* prev_features,
3299 CvPoint2D32f* curr_features,
3300 float* matrices, int count,
3301 CvSize win_size, int level,
3302 char* status, float* track_error,
3303 CvTermCriteria criteria, int flags );
3306 extern "C" int cvEstimateRigidTransform( const CvArr* A, const CvArr* B,
3307 CvMat* M, int full_affine );
3308 # 534 "../../../include/opencv/cv.h"
3309 extern "C" void cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi,
3310 double timestamp, double duration );
3314 extern "C" void cvCalcMotionGradient( const CvArr* mhi, CvArr* mask, CvArr* orientation,
3315 double delta1, double delta2,
3316 int aperture_size = 3);
3321 extern "C" double cvCalcGlobalOrientation( const CvArr* orientation, const CvArr* mask,
3322 const CvArr* mhi, double timestamp,
3327 extern "C" CvSeq* cvSegmentMotion( const CvArr* mhi, CvArr* seg_mask,
3328 CvMemStorage* storage,
3329 double timestamp, double seg_thresh );
3334 extern "C" void cvAcc( const CvArr* image, CvArr* sum,
3335 const CvArr* mask = NULL );
3338 extern "C" void cvSquareAcc( const CvArr* image, CvArr* sqsum,
3339 const CvArr* mask = NULL );
3342 extern "C" void cvMultiplyAcc( const CvArr* image1, const CvArr* image2, CvArr* acc,
3343 const CvArr* mask = NULL );
3346 extern "C" void cvRunningAvg( const CvArr* image, CvArr* acc, double alpha,
3347 const CvArr* mask = NULL );
3348 # 581 "../../../include/opencv/cv.h"
3349 extern "C" int cvCamShift( const CvArr* prob_image, CvRect window,
3350 CvTermCriteria criteria, CvConnectedComp* comp,
3351 CvBox2D* box = NULL );
3355 extern "C" int cvMeanShift( const CvArr* prob_image, CvRect window,
3356 CvTermCriteria criteria, CvConnectedComp* comp );
3359 extern "C" CvConDensation* cvCreateConDensation( int dynam_params,
3364 extern "C" void cvReleaseConDensation( CvConDensation** condens );
3367 extern "C" void cvConDensUpdateByTime( CvConDensation* condens);
3370 extern "C" void cvConDensInitSampleSet( CvConDensation* condens, CvMat* lower_bound, CvMat* upper_bound );
3373 extern "C" CvKalman* cvCreateKalman( int dynam_params, int measure_params,
3374 int control_params = 0);
3377 extern "C" void cvReleaseKalman( CvKalman** kalman);
3380 extern "C" const CvMat* cvKalmanPredict( CvKalman* kalman,
3381 const CvMat* control = NULL);
3385 extern "C" const CvMat* cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement );
3392 extern "C" void cvInitSubdivDelaunay2D( CvSubdiv2D* subdiv, CvRect rect );
3395 extern "C" CvSubdiv2D* cvCreateSubdiv2D( int subdiv_type, int header_size,
3396 int vtx_size, int quadedge_size,
3397 CvMemStorage* storage );
3402 inline CvSubdiv2D* cvCreateSubdivDelaunay2D( CvRect rect, CvMemStorage* storage )
3404 CvSubdiv2D* subdiv = cvCreateSubdiv2D( (4 << 9), sizeof(*subdiv),
3405 sizeof(CvSubdiv2DPoint), sizeof(CvQuadEdge2D), storage );
3407 cvInitSubdivDelaunay2D( subdiv, rect );
3413 extern "C" CvSubdiv2DPoint* cvSubdivDelaunay2DInsert( CvSubdiv2D* subdiv, CvPoint2D32f pt);
3418 extern "C" CvSubdiv2DPointLocation cvSubdiv2DLocate(
3419 CvSubdiv2D* subdiv, CvPoint2D32f pt,
3420 CvSubdiv2DEdge* edge,
3421 CvSubdiv2DPoint** vertex = NULL );
3424 extern "C" void cvCalcSubdivVoronoi2D( CvSubdiv2D* subdiv );
3428 extern "C" void cvClearSubdivVoronoi2D( CvSubdiv2D* subdiv );
3432 extern "C" CvSubdiv2DPoint* cvFindNearestPoint2D( CvSubdiv2D* subdiv, CvPoint2D32f pt );
3437 inline CvSubdiv2DEdge cvSubdiv2DNextEdge( CvSubdiv2DEdge edge )
3439 return (((CvQuadEdge2D*)((edge) & ~3))->next[(edge)&3]);
3443 inline CvSubdiv2DEdge cvSubdiv2DRotateEdge( CvSubdiv2DEdge edge, int rotate )
3445 return (edge & ~3) + ((edge + rotate) & 3);
3448 inline CvSubdiv2DEdge cvSubdiv2DSymEdge( CvSubdiv2DEdge edge )
3453 inline CvSubdiv2DEdge cvSubdiv2DGetEdge( CvSubdiv2DEdge edge, CvNextEdgeType type )
3455 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
3456 edge = e->next[(edge + (int)type) & 3];
3457 return (edge & ~3) + ((edge + ((int)type >> 4)) & 3);
3461 inline CvSubdiv2DPoint* cvSubdiv2DEdgeOrg( CvSubdiv2DEdge edge )
3463 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
3464 return (CvSubdiv2DPoint*)e->pt[edge & 3];
3468 inline CvSubdiv2DPoint* cvSubdiv2DEdgeDst( CvSubdiv2DEdge edge )
3470 CvQuadEdge2D* e = (CvQuadEdge2D*)(edge & ~3);
3471 return (CvSubdiv2DPoint*)e->pt[(edge + 2) & 3];
3475 inline double cvTriangleArea( CvPoint2D32f a, CvPoint2D32f b, CvPoint2D32f c )
3477 return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
3479 # 721 "../../../include/opencv/cv.h"
3480 extern "C" CvSeq* cvApproxPoly( const void* src_seq,
3481 int header_size, CvMemStorage* storage,
3482 int method, double parameter,
3483 int parameter2 = 0);
3488 extern "C" CvSeq* cvFindDominantPoints( CvSeq* contour, CvMemStorage* storage,
3490 double parameter1 = 0,
3491 double parameter2 = 0,
3492 double parameter3 = 0,
3493 double parameter4 = 0);
3496 extern "C" double cvArcLength( const void* curve,
3497 CvSlice slice = cvSlice(0, 0x3fffffff),
3498 int is_closed = -1);
3503 extern "C" CvRect cvBoundingRect( CvArr* points, int update = 0 );
3506 extern "C" double cvContourArea( const CvArr* contour,
3507 CvSlice slice = cvSlice(0, 0x3fffffff));
3510 extern "C" CvBox2D cvMinAreaRect2( const CvArr* points,
3511 CvMemStorage* storage = NULL);
3514 extern "C" int cvMinEnclosingCircle( const CvArr* points,
3515 CvPoint2D32f* center, float* radius );
3522 extern "C" double cvMatchShapes( const void* object1, const void* object2,
3523 int method, double parameter = 0);
3526 extern "C" CvContourTree* cvCreateContourTree( const CvSeq* contour,
3527 CvMemStorage* storage,
3531 extern "C" CvSeq* cvContourFromContourTree( const CvContourTree* tree,
3532 CvMemStorage* storage,
3533 CvTermCriteria criteria );
3538 extern "C" double cvMatchContourTrees( const CvContourTree* tree1,
3539 const CvContourTree* tree2,
3540 int method, double threshold );
3543 extern "C" void cvCalcPGH( const CvSeq* contour, CvHistogram* hist );
3549 extern "C" CvSeq* cvConvexHull2( const CvArr* input,
3550 void* hull_storage = NULL,
3551 int orientation = 1,
3552 int return_points = 0);
3555 extern "C" int cvCheckContourConvexity( const CvArr* contour );
3558 extern "C" CvSeq* cvConvexityDefects( const CvArr* contour, const CvArr* convexhull,
3559 CvMemStorage* storage = NULL);
3562 extern "C" CvBox2D cvFitEllipse2( const CvArr* points );
3565 extern "C" CvRect cvMaxRect( const CvRect* rect1, const CvRect* rect2 );
3568 extern "C" void cvBoxPoints( CvBox2D box, CvPoint2D32f pt[4] );
3572 extern "C" CvSeq* cvPointSeqFromMat( int seq_kind, const CvArr* mat,
3573 CvContour* contour_header,
3574 CvSeqBlock* block );
3580 extern "C" double cvPointPolygonTest( const CvArr* contour,
3581 CvPoint2D32f pt, int measure_dist );
3588 extern "C" CvHistogram* cvCreateHist( int dims, int* sizes, int type,
3589 float** ranges = NULL,
3593 extern "C" void cvSetHistBinRanges( CvHistogram* hist, float** ranges,
3597 extern "C" CvHistogram* cvMakeHistHeaderForArray(
3598 int dims, int* sizes, CvHistogram* hist,
3599 float* data, float** ranges = NULL,
3603 extern "C" void cvReleaseHist( CvHistogram** hist );
3606 extern "C" void cvClearHist( CvHistogram* hist );
3609 extern "C" void cvGetMinMaxHistValue( const CvHistogram* hist,
3610 float* min_value, float* max_value,
3611 int* min_idx = NULL,
3612 int* max_idx = NULL);
3617 extern "C" void cvNormalizeHist( CvHistogram* hist, double factor );
3621 extern "C" void cvThreshHist( CvHistogram* hist, double threshold );
3629 extern "C" double cvCompareHist( const CvHistogram* hist1,
3630 const CvHistogram* hist2,
3635 extern "C" void cvCopyHist( const CvHistogram* src, CvHistogram** dst );
3640 extern "C" void cvCalcBayesianProb( CvHistogram** src, int number,
3644 extern "C" void cvCalcArrHist( CvArr** arr, CvHistogram* hist,
3646 const CvArr* mask = NULL );
3648 inline void cvCalcHist( IplImage** image, CvHistogram* hist,
3650 const CvArr* mask = NULL )
3652 cvCalcArrHist( (CvArr**)image, hist, accumulate, mask );
3656 extern "C" void cvCalcArrBackProject( CvArr** image, CvArr* dst,
3657 const CvHistogram* hist );
3663 extern "C" void cvCalcArrBackProjectPatch( CvArr** image, CvArr* dst, CvSize range,
3664 CvHistogram* hist, int method,
3671 extern "C" void cvCalcProbDensity( const CvHistogram* hist1, const CvHistogram* hist2,
3672 CvHistogram* dst_hist, double scale = 255 );
3675 extern "C" void cvEqualizeHist( const CvArr* src, CvArr* dst );
3682 extern "C" void cvSnakeImage( const IplImage* image, CvPoint* points,
3683 int length, float* alpha,
3684 float* beta, float* gamma,
3685 int coeff_usage, CvSize win,
3686 CvTermCriteria criteria, int calc_gradient = 1);
3689 extern "C" void cvCalcImageHomography( float* line, CvPoint3D32f* center,
3690 float* intrinsic, float* homography );
3697 extern "C" void cvDistTransform( const CvArr* src, CvArr* dst,
3698 int distance_type = 2,
3700 const float* mask = NULL,
3701 CvArr* labels = NULL);
3702 # 958 "../../../include/opencv/cv.h"
3703 extern "C" double cvThreshold( const CvArr* src, CvArr* dst,
3704 double threshold, double max_value,
3705 int threshold_type );
3706 # 970 "../../../include/opencv/cv.h"
3707 extern "C" void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,
3708 int adaptive_method = 0,
3709 int threshold_type = 0,
3717 extern "C" void cvFloodFill( CvArr* image, CvPoint seed_point,
3718 CvScalar new_val, CvScalar lo_diff = cvScalarAll(0),
3719 CvScalar up_diff = cvScalarAll(0),
3720 CvConnectedComp* comp = NULL,
3722 CvArr* mask = NULL);
3723 # 994 "../../../include/opencv/cv.h"
3724 extern "C" void cvCanny( const CvArr* image, CvArr* edges, double threshold1,
3725 double threshold2, int aperture_size = 3 );
3730 extern "C" void cvPreCornerDetect( const CvArr* image, CvArr* corners,
3731 int aperture_size = 3 );
3735 extern "C" void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
3736 int block_size, int aperture_size = 3 );
3740 extern "C" void cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval,
3741 int block_size, int aperture_size = 3 );
3745 extern "C" void cvCornerHarris( const CvArr* image, CvArr* harris_responce,
3746 int block_size, int aperture_size = 3,
3750 extern "C" void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners,
3751 int count, CvSize win, CvSize zero_zone,
3752 CvTermCriteria criteria );
3756 extern "C" void cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image,
3757 CvArr* temp_image, CvPoint2D32f* corners,
3758 int* corner_count, double quality_level,
3759 double min_distance,
3760 const CvArr* mask = NULL,
3764 # 1047 "../../../include/opencv/cv.h"
3765 extern "C" CvSeq* cvHoughLines2( CvArr* image, void* line_storage, int method,
3766 double rho, double theta, int threshold,
3767 double param1 = 0, double param2 = 0);
3770 extern "C" CvSeq* cvHoughCircles( CvArr* image, void* circle_storage,
3771 int method, double dp, double min_dist,
3772 double param1 = 100,
3773 double param2 = 100,
3775 int max_radius = 0);
3778 extern "C" void cvFitLine( const CvArr* points, int dist_type, double param,
3779 double reps, double aeps, float* line );
3783 struct CvFeatureTree;
3786 extern "C" struct CvFeatureTree* cvCreateKDTree(CvMat* desc);
3789 extern "C" struct CvFeatureTree* cvCreateSpillTree( const CvMat* raw_data,
3790 const int naive = 50,
3791 const double rho = .7,
3792 const double tau = .1 );
3795 extern "C" void cvReleaseFeatureTree(struct CvFeatureTree* tr);
3799 extern "C" void cvFindFeatures(struct CvFeatureTree* tr, const CvMat* query_points,
3800 CvMat* indices, CvMat* dist, int k, int emax = 20);
3804 extern "C" int cvFindFeaturesBoxed(struct CvFeatureTree* tr,
3805 CvMat* bounds_min, CvMat* bounds_max,
3806 CvMat* out_indices);
3810 struct CvLSHOperations;
3814 extern "C" struct CvLSH* cvCreateLSH(struct CvLSHOperations* ops, int d,
3815 int L = 10, int k = 10,
3816 int type = (((6) & ((1 << 3) - 1)) + (((1)-1) << 3)), double r = 4,
3820 extern "C" struct CvLSH* cvCreateMemoryLSH(int d, int n, int L = 10, int k = 10,
3821 int type = (((6) & ((1 << 3) - 1)) + (((1)-1) << 3)), double r = 4,
3825 extern "C" void cvReleaseLSH(struct CvLSH** lsh);
3828 extern "C" unsigned int LSHSize(struct CvLSH* lsh);
3831 extern "C" void cvLSHAdd(struct CvLSH* lsh, const CvMat* data, CvMat* indices = 0);
3834 extern "C" void cvLSHRemove(struct CvLSH* lsh, const CvMat* indices);
3838 extern "C" void cvLSHQuery(struct CvLSH* lsh, const CvMat* query_points,
3839 CvMat* indices, CvMat* dist, int k, int emax);
3842 typedef struct CvSURFPoint
3851 inline CvSURFPoint cvSURFPoint( CvPoint2D32f pt, int laplacian,
3852 int size, float dir = 0,
3857 kp.laplacian = laplacian;
3860 kp.hessian = hessian;
3864 typedef struct CvSURFParams
3867 double hessianThreshold;
3874 extern "C" CvSURFParams cvSURFParams( double hessianThreshold, int extended = 0 );
3878 extern "C" void cvExtractSURF( const CvArr* img, const CvArr* mask,
3879 CvSeq** keypoints, CvSeq** descriptors,
3880 CvMemStorage* storage, CvSURFParams params, int useProvidedKeyPts = 0 );
3882 typedef struct CvMSERParams
3897 double areaThreshold;
3905 extern "C" CvMSERParams cvMSERParams( int delta = 5, int min_area = 60,
3906 int max_area = 14400, float max_variation = .25f,
3907 float min_diversity = .2f, int max_evolution = 200,
3908 double area_threshold = 1.01,
3909 double min_margin = .003,
3910 int edge_blur_size = 5 );
3913 extern "C" void cvExtractMSER( CvArr* _img, CvArr* _mask, CvSeq** contours, CvMemStorage* storage, CvMSERParams params );
3916 typedef struct CvStarKeypoint
3924 inline CvStarKeypoint cvStarKeypoint(CvPoint pt, int size, float response)
3929 kpt.response = response;
3933 typedef struct CvStarDetectorParams
3936 int responseThreshold;
3937 int lineThresholdProjected;
3938 int lineThresholdBinarized;
3939 int suppressNonmaxSize;
3941 CvStarDetectorParams;
3943 inline CvStarDetectorParams cvStarDetectorParams(
3945 int responseThreshold = 30,
3946 int lineThresholdProjected = 10,
3947 int lineThresholdBinarized = 8,
3948 int suppressNonmaxSize = 5)
3950 CvStarDetectorParams params;
3951 params.maxSize = maxSize;
3952 params.responseThreshold = responseThreshold;
3953 params.lineThresholdProjected = lineThresholdProjected;
3954 params.lineThresholdBinarized = lineThresholdBinarized;
3955 params.suppressNonmaxSize = suppressNonmaxSize;
3960 extern "C" CvSeq* cvGetStarKeypoints( const CvArr* img, CvMemStorage* storage,
3961 CvStarDetectorParams params = cvStarDetectorParams());
3969 extern "C" CvHaarClassifierCascade* cvLoadHaarClassifierCascade(
3970 const char* directory, CvSize orig_window_size);
3972 extern "C" void cvReleaseHaarClassifierCascade( CvHaarClassifierCascade** cascade );
3979 extern "C" CvSeq* cvHaarDetectObjects( const CvArr* image,
3980 CvHaarClassifierCascade* cascade,
3981 CvMemStorage* storage, double scale_factor = 1.1,
3982 int min_neighbors = 3, int flags = 0,
3983 CvSize min_size = cvSize(0,0));
3986 extern "C" void cvSetImagesForHaarClassifierCascade( CvHaarClassifierCascade* cascade,
3987 const CvArr* sum, const CvArr* sqsum,
3988 const CvArr* tilted_sum, double scale );
3991 extern "C" int cvRunHaarClassifierCascade( const CvHaarClassifierCascade* cascade,
3992 CvPoint pt, int start_stage = 0);
3999 extern "C" void cvUndistort2( const CvArr* src, CvArr* dst,
4000 const CvMat* camera_matrix,
4001 const CvMat* distortion_coeffs );
4005 extern "C" void cvInitUndistortMap( const CvMat* camera_matrix,
4006 const CvMat* distortion_coeffs,
4007 CvArr* mapx, CvArr* mapy );
4010 extern "C" void cvInitUndistortRectifyMap( const CvMat* camera_matrix,
4011 const CvMat* dist_coeffs,
4012 const CvMat *R, const CvMat* new_camera_matrix,
4013 CvArr* mapx, CvArr* mapy );
4017 extern "C" void cvUndistortPoints( const CvMat* src, CvMat* dst,
4018 const CvMat* camera_matrix,
4019 const CvMat* dist_coeffs,
4021 const CvMat* P = 0);
4024 extern "C" int cvRodrigues2( const CvMat* src, CvMat* dst,
4025 CvMat* jacobian = 0 );
4031 extern "C" int cvFindHomography( const CvMat* src_points,
4032 const CvMat* dst_points,
4035 double ransacReprojThreshold = 0,
4039 extern "C" void cvRQDecomp3x3( const CvMat *matrixM, CvMat *matrixR, CvMat *matrixQ,
4040 CvMat *matrixQx = NULL,
4041 CvMat *matrixQy = NULL,
4042 CvMat *matrixQz = NULL,
4043 CvPoint3D64f *eulerAngles = NULL);
4046 extern "C" void cvDecomposeProjectionMatrix( const CvMat *projMatr, CvMat *calibMatr,
4047 CvMat *rotMatr, CvMat *posVect,
4048 CvMat *rotMatrX = NULL,
4049 CvMat *rotMatrY = NULL,
4050 CvMat *rotMatrZ = NULL,
4051 CvPoint3D64f *eulerAngles = NULL);
4054 extern "C" void cvCalcMatMulDeriv( const CvMat* A, const CvMat* B, CvMat* dABdA, CvMat* dABdB );
4058 extern "C" void cvComposeRT( const CvMat* _rvec1, const CvMat* _tvec1,
4059 const CvMat* _rvec2, const CvMat* _tvec2,
4060 CvMat* _rvec3, CvMat* _tvec3,
4061 CvMat* dr3dr1 = 0, CvMat* dr3dt1 = 0,
4062 CvMat* dr3dr2 = 0, CvMat* dr3dt2 = 0,
4063 CvMat* dt3dr1 = 0, CvMat* dt3dt1 = 0,
4064 CvMat* dt3dr2 = 0, CvMat* dt3dt2 = 0 );
4068 extern "C" void cvProjectPoints2( const CvMat* object_points, const CvMat* rotation_vector,
4069 const CvMat* translation_vector, const CvMat* camera_matrix,
4070 const CvMat* distortion_coeffs, CvMat* image_points,
4071 CvMat* dpdrot = NULL, CvMat* dpdt = NULL,
4072 CvMat* dpdf = NULL, CvMat* dpdc = NULL,
4073 CvMat* dpddist = NULL,
4074 double aspect_ratio = 0);
4078 extern "C" void cvFindExtrinsicCameraParams2( const CvMat* object_points,
4079 const CvMat* image_points,
4080 const CvMat* camera_matrix,
4081 const CvMat* distortion_coeffs,
4082 CvMat* rotation_vector,
4083 CvMat* translation_vector,
4084 int use_extrinsic_guess = 0 );
4088 extern "C" void cvInitIntrinsicParams2D( const CvMat* object_points,
4089 const CvMat* image_points,
4090 const CvMat* npoints, CvSize image_size,
4091 CvMat* camera_matrix,
4092 double aspect_ratio = 1. );
4099 extern "C" int cvFindChessboardCorners( const void* image, CvSize pattern_size,
4100 CvPoint2D32f* corners,
4101 int* corner_count = NULL,
4102 int flags = 1 + 2 );
4106 extern "C" void cvDrawChessboardCorners( CvArr* image, CvSize pattern_size,
4107 CvPoint2D32f* corners,
4108 int count, int pattern_was_found );
4109 # 1403 "../../../include/opencv/cv.h"
4110 extern "C" void cvCalibrateCamera2( const CvMat* object_points,
4111 const CvMat* image_points,
4112 const CvMat* point_counts,
4114 CvMat* camera_matrix,
4115 CvMat* distortion_coeffs,
4116 CvMat* rotation_vectors = NULL,
4117 CvMat* translation_vectors = NULL,
4122 extern "C" void cvCalibrationMatrixValues( const CvMat *camera_matrix,
4124 double aperture_width = 0,
4125 double aperture_height = 0,
4126 double *fovx = NULL,
4127 double *fovy = NULL,
4128 double *focal_length = NULL,
4129 CvPoint2D64f *principal_point = NULL,
4130 double *pixel_aspect_ratio = NULL);
4138 extern "C" void cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1,
4139 const CvMat* image_points2, const CvMat* npoints,
4140 CvMat* camera_matrix1, CvMat* dist_coeffs1,
4141 CvMat* camera_matrix2, CvMat* dist_coeffs2,
4142 CvSize image_size, CvMat* R, CvMat* T,
4143 CvMat* E = 0, CvMat* F = 0,
4144 CvTermCriteria term_crit = cvTermCriteria( 1 +2,30,1e-6),
4152 extern "C" void cvStereoRectify( const CvMat* camera_matrix1, const CvMat* camera_matrix2,
4153 const CvMat* dist_coeffs1, const CvMat* dist_coeffs2,
4154 CvSize image_size, const CvMat* R, const CvMat* T,
4155 CvMat* R1, CvMat* R2, CvMat* P1, CvMat* P2,
4161 extern "C" int cvStereoRectifyUncalibrated( const CvMat* points1, const CvMat* points2,
4162 const CvMat* F, CvSize img_size,
4163 CvMat* H1, CvMat* H2,
4164 double threshold = 5);
4166 typedef struct CvPOSITObject CvPOSITObject;
4169 extern "C" CvPOSITObject* cvCreatePOSITObject( CvPoint3D32f* points, int point_count );
4174 extern "C" void cvPOSIT( CvPOSITObject* posit_object, CvPoint2D32f* image_points,
4175 double focal_length, CvTermCriteria criteria,
4176 CvMatr32f rotation_matrix, CvVect32f translation_vector);
4179 extern "C" void cvReleasePOSITObject( CvPOSITObject** posit_object );
4182 extern "C" int cvRANSACUpdateNumIters( double p, double err_prob,
4183 int model_points, int max_iters );
4185 extern "C" void cvConvertPointsHomogeneous( const CvMat* src, CvMat* dst );
4186 # 1487 "../../../include/opencv/cv.h"
4187 extern "C" int cvFindFundamentalMat( const CvMat* points1, const CvMat* points2,
4188 CvMat* fundamental_matrix,
4190 double param1 = 3., double param2 = 0.99,
4191 CvMat* status = NULL );
4196 extern "C" void cvComputeCorrespondEpilines( const CvMat* points,
4198 const CvMat* fundamental_matrix,
4199 CvMat* correspondent_lines );
4203 extern "C" void cvTriangulatePoints(CvMat* projMatr1, CvMat* projMatr2,
4204 CvMat* projPoints1, CvMat* projPoints2,
4207 extern "C" void cvCorrectMatches(CvMat* F, CvMat* points1, CvMat* points2,
4208 CvMat* new_points1, CvMat* new_points2);
4215 typedef struct CvStereoBMState
4225 int numberOfDisparities;
4228 int textureThreshold;
4230 int uniquenessRatio;
4233 int speckleWindowSize;
4236 int trySmallerWindows;
4240 CvMat* preFilteredImg0;
4241 CvMat* preFilteredImg1;
4242 CvMat* slidingSumBuf;
4252 extern "C" CvStereoBMState* cvCreateStereoBMState(int preset = 0,
4253 int numberOfDisparities = 0);
4255 extern "C" void cvReleaseStereoBMState( CvStereoBMState** state );
4257 extern "C" void cvFindStereoCorrespondenceBM( const CvArr* left, const CvArr* right,
4258 CvArr* disparity, CvStereoBMState* state );
4263 typedef struct CvStereoGCState
4266 int interactionRadius;
4267 float K, lambda, lambda1, lambda2;
4270 int numberOfDisparities;
4284 extern "C" CvStereoGCState* cvCreateStereoGCState( int numberOfDisparities, int maxIters );
4285 extern "C" void cvReleaseStereoGCState( CvStereoGCState** state );
4287 extern "C" void cvFindStereoCorrespondenceGC( const CvArr* left, const CvArr* right,
4288 CvArr* disparityLeft, CvArr* disparityRight,
4289 CvStereoGCState* state,
4290 int useDisparityGuess = 0 );
4293 extern "C" void cvReprojectImageTo3D( const CvArr* disparityImage,
4294 CvArr* _3dImage, const CvMat* Q,
4295 int handleMissingValues = 0 );