43 #ifndef __OPENCV_CORE_TYPES_H__
44 #define __OPENCV_CORE_TYPES_H__
46 #if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER
48 # define _CRT_SECURE_NO_DEPRECATE
60 #if !defined _MSC_VER && !defined __BORLANDC__
72 #elif defined __INTEL_COMPILER
73 # define CV_ICC __INTEL_COMPILER
76 #if defined CV_ICC && !defined CV_ENABLE_UNROLLED
77 # define CV_ENABLE_UNROLLED 0
79 # define CV_ENABLE_UNROLLED 1
82 #if (defined _M_X64 && defined _MSC_VER && _MSC_VER >= 1400) || (__GNUC__ >= 4 && defined __x86_64__)
86 # if defined __SSE2__ || !defined __GNUC__
87 # include <emmintrin.h>
91 #if defined __BORLANDC__
92 # include <fastmath.h>
99 # if defined WIN32 || defined _WIN32
102 # include <ipl/ipl.h>
105 #elif defined __IPL_H__
109 #endif // SKIP_INCLUDES
111 #if defined WIN32 || defined _WIN32
112 # define CV_CDECL __cdecl
113 # define CV_STDCALL __stdcall
121 # define CV_EXTERN_C extern "C"
122 # define CV_DEFAULT(val) = val
125 # define CV_DEFAULT(val)
129 #ifndef CV_EXTERN_C_FUNCPTR
131 # define CV_EXTERN_C_FUNCPTR(x) extern "C" { typedef x; }
133 # define CV_EXTERN_C_FUNCPTR(x) typedef x
138 # if defined __cplusplus
139 # define CV_INLINE inline
140 # elif defined _MSC_VER
141 # define CV_INLINE __inline
143 # define CV_INLINE static
147 #if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS
148 # define CV_EXPORTS __declspec(dllexport)
154 # define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL
157 #if defined _MSC_VER || defined __BORLANDC__
160 # define CV_BIG_INT(n) n##I64
161 # define CV_BIG_UINT(n) n##UI64
165 # define CV_BIG_INT(n) n##LL
166 # define CV_BIG_UINT(n) n##ULL
177 #define CV_CARRAY(counter)
178 #define CV_CUSTOM_CARRAY(args)
179 #define CV_EXPORTS_W CV_EXPORTS
180 #define CV_EXPORTS_W_SIMPLE CV_EXPORTS
181 #define CV_EXPORTS_AS(synonym) CV_EXPORTS
182 #define CV_EXPORTS_W_MAP CV_EXPORTS
188 #define CV_WRAP_AS(synonym)
189 #define CV_WRAP_DEFAULT(value)
277 #ifdef HAVE_TEGRA_OPTIMIZATION
278 # include "tegra_round.hpp"
281 #define CV_PI 3.1415926535897932384626433832795
282 #define CV_LOG2 0.69314718055994530941723212145818
284 #define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t))
287 # define MIN(a,b) ((a) > (b) ? (b) : (a))
291 # define MAX(a,b) ((a) < (b) ? (b) : (a))
295 #define CV_IMIN(a, b) ((a) ^ (((a)^(b)) & (((a) < (b)) - 1)))
297 #define CV_IMAX(a, b) ((a) ^ (((a)^(b)) & (((a) > (b)) - 1)))
301 # define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0))
303 # define CV_IABS(a) abs(a)
305 #define CV_CMP(a,b) (((a) > (b)) - ((a) < (b)))
306 #define CV_SIGN(a) CV_CMP((a),0)
310 #if (defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ && defined __SSE2__ && !defined __APPLE__)
311 __m128d
t = _mm_set_sd( value );
312 return _mm_cvtsd_si32(t);
313 #elif defined _MSC_VER && defined _M_IX86
321 #elif defined _MSC_VER && defined _M_ARM && defined HAVE_TEGRA_OPTIMIZATION
323 #elif defined CV_ICC || defined __GNUC__
324 # ifdef HAVE_TEGRA_OPTIMIZATION
327 return (
int)lrint(value);
330 double intpart, fractpart;
331 fractpart = modf(value, &intpart);
332 if ((fabs(fractpart) != 0.5) || ((((
int)intpart) % 2) != 0))
333 return (
int)(value + (value >= 0 ? 0.5 : -0.5));
339 #if defined __SSE2__ || (defined _M_IX86_FP && 2 == _M_IX86_FP)
340 # include "emmintrin.h"
345 #if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__ && !defined __APPLE__)
346 __m128d
t = _mm_set_sd( value );
347 int i = _mm_cvtsd_si32(t);
348 return i - _mm_movemask_pd(_mm_cmplt_sd(t, _mm_cvtsi32_sd(t,i)));
349 #elif defined __GNUC__
351 return i - (i >
value);
354 float diff = (
float)(value - i);
355 return i - (diff < 0);
362 #if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__&& !defined __APPLE__)
363 __m128d
t = _mm_set_sd( value );
364 int i = _mm_cvtsd_si32(t);
365 return i + _mm_movemask_pd(_mm_cmplt_sd(_mm_cvtsi32_sd(t,i), t));
366 #elif defined __GNUC__
368 return i + (i <
value);
371 float diff = (
float)(i - value);
372 return i + (diff < 0);
376 #define cvInvSqrt(value) ((float)(1./sqrt(value)))
377 #define cvSqrt(value) ((float)sqrt(value))
383 return ((
unsigned)(ieee754.
u >> 32) & 0x7fffffff) +
384 ((unsigned)ieee754.
u != 0) > 0x7ff00000;
392 return ((
unsigned)(ieee754.
u >> 32) & 0x7fffffff) == 0x7ff00000 &&
393 (unsigned)ieee754.
u == 0;
401 #define CV_RNG_COEFF 4164903690U
413 temp = (
uint64)(
unsigned)temp*CV_RNG_COEFF + (temp >> 32);
415 return (
unsigned)
temp;
421 return cvRandInt(rng)*2.3283064365386962890625e-10 ;
435 #define IPL_DEPTH_SIGN 0x80000000
437 #define IPL_DEPTH_1U 1
438 #define IPL_DEPTH_8U 8
439 #define IPL_DEPTH_16U 16
440 #define IPL_DEPTH_32F 32
442 #define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8)
443 #define IPL_DEPTH_16S (IPL_DEPTH_SIGN|16)
444 #define IPL_DEPTH_32S (IPL_DEPTH_SIGN|32)
446 #define IPL_DATA_ORDER_PIXEL 0
447 #define IPL_DATA_ORDER_PLANE 1
449 #define IPL_ORIGIN_TL 0
450 #define IPL_ORIGIN_BL 1
452 #define IPL_ALIGN_4BYTES 4
453 #define IPL_ALIGN_8BYTES 8
454 #define IPL_ALIGN_16BYTES 16
455 #define IPL_ALIGN_32BYTES 32
457 #define IPL_ALIGN_DWORD IPL_ALIGN_4BYTES
458 #define IPL_ALIGN_QWORD IPL_ALIGN_8BYTES
460 #define IPL_BORDER_CONSTANT 0
461 #define IPL_BORDER_REPLICATE 1
462 #define IPL_BORDER_REFLECT 2
463 #define IPL_BORDER_WRAP 3
533 #define IPL_IMAGE_HEADER 1
534 #define IPL_IMAGE_DATA 2
535 #define IPL_IMAGE_ROI 4
540 #define IPL_BORDER_REFLECT_101 4
541 #define IPL_BORDER_TRANSPARENT 5
543 #define IPL_IMAGE_MAGIC_VAL ((int)sizeof(IplImage))
544 #define CV_TYPE_NAME_IMAGE "opencv-image"
546 #define CV_IS_IMAGE_HDR(img) \
547 ((img) != NULL && ((const IplImage*)(img))->nSize == sizeof(IplImage))
549 #define CV_IS_IMAGE(img) \
550 (CV_IS_IMAGE_HDR(img) && ((IplImage*)img)->imageData != NULL)
554 #define IPL_DEPTH_64F 64
558 #define CV_IMAGE_ELEM( image, elemtype, row, col ) \
559 (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)])
565 #define CV_CN_MAX 512
566 #define CV_CN_SHIFT 3
567 #define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
576 #define CV_USRTYPE1 7
578 #define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
579 #define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
581 #define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
582 #define CV_MAKE_TYPE CV_MAKETYPE
584 #define CV_8UC1 CV_MAKETYPE(CV_8U,1)
585 #define CV_8UC2 CV_MAKETYPE(CV_8U,2)
586 #define CV_8UC3 CV_MAKETYPE(CV_8U,3)
587 #define CV_8UC4 CV_MAKETYPE(CV_8U,4)
588 #define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
590 #define CV_8SC1 CV_MAKETYPE(CV_8S,1)
591 #define CV_8SC2 CV_MAKETYPE(CV_8S,2)
592 #define CV_8SC3 CV_MAKETYPE(CV_8S,3)
593 #define CV_8SC4 CV_MAKETYPE(CV_8S,4)
594 #define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
596 #define CV_16UC1 CV_MAKETYPE(CV_16U,1)
597 #define CV_16UC2 CV_MAKETYPE(CV_16U,2)
598 #define CV_16UC3 CV_MAKETYPE(CV_16U,3)
599 #define CV_16UC4 CV_MAKETYPE(CV_16U,4)
600 #define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
602 #define CV_16SC1 CV_MAKETYPE(CV_16S,1)
603 #define CV_16SC2 CV_MAKETYPE(CV_16S,2)
604 #define CV_16SC3 CV_MAKETYPE(CV_16S,3)
605 #define CV_16SC4 CV_MAKETYPE(CV_16S,4)
606 #define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
608 #define CV_32SC1 CV_MAKETYPE(CV_32S,1)
609 #define CV_32SC2 CV_MAKETYPE(CV_32S,2)
610 #define CV_32SC3 CV_MAKETYPE(CV_32S,3)
611 #define CV_32SC4 CV_MAKETYPE(CV_32S,4)
612 #define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
614 #define CV_32FC1 CV_MAKETYPE(CV_32F,1)
615 #define CV_32FC2 CV_MAKETYPE(CV_32F,2)
616 #define CV_32FC3 CV_MAKETYPE(CV_32F,3)
617 #define CV_32FC4 CV_MAKETYPE(CV_32F,4)
618 #define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
620 #define CV_64FC1 CV_MAKETYPE(CV_64F,1)
621 #define CV_64FC2 CV_MAKETYPE(CV_64F,2)
622 #define CV_64FC3 CV_MAKETYPE(CV_64F,3)
623 #define CV_64FC4 CV_MAKETYPE(CV_64F,4)
624 #define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
626 #define CV_AUTO_STEP 0x7fffffff
627 #define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff )
629 #define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT)
630 #define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
631 #define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1)
632 #define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK)
633 #define CV_MAT_CONT_FLAG_SHIFT 14
634 #define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT)
635 #define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG)
636 #define CV_IS_CONT_MAT CV_IS_MAT_CONT
637 #define CV_SUBMAT_FLAG_SHIFT 15
638 #define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT)
639 #define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG)
641 #define CV_MAGIC_MASK 0xFFFF0000
642 #define CV_MAT_MAGIC_VAL 0x42420000
643 #define CV_TYPE_NAME_MAT "opencv-matrix"
684 #define CV_IS_MAT_HDR(mat) \
686 (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \
687 ((const CvMat*)(mat))->cols > 0 && ((const CvMat*)(mat))->rows > 0)
689 #define CV_IS_MAT_HDR_Z(mat) \
691 (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \
692 ((const CvMat*)(mat))->cols >= 0 && ((const CvMat*)(mat))->rows >= 0)
694 #define CV_IS_MAT(mat) \
695 (CV_IS_MAT_HDR(mat) && ((const CvMat*)(mat))->data.ptr != NULL)
697 #define CV_IS_MASK_ARR(mat) \
698 (((mat)->type & (CV_MAT_TYPE_MASK & ~CV_8SC1)) == 0)
700 #define CV_ARE_TYPES_EQ(mat1, mat2) \
701 ((((mat1)->type ^ (mat2)->type) & CV_MAT_TYPE_MASK) == 0)
703 #define CV_ARE_CNS_EQ(mat1, mat2) \
704 ((((mat1)->type ^ (mat2)->type) & CV_MAT_CN_MASK) == 0)
706 #define CV_ARE_DEPTHS_EQ(mat1, mat2) \
707 ((((mat1)->type ^ (mat2)->type) & CV_MAT_DEPTH_MASK) == 0)
709 #define CV_ARE_SIZES_EQ(mat1, mat2) \
710 ((mat1)->rows == (mat2)->rows && (mat1)->cols == (mat2)->cols)
712 #define CV_IS_MAT_CONST(mat) \
713 (((mat)->rows|(mat)->cols) == 1)
717 #define CV_ELEM_SIZE1(type) \
718 ((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15)
721 #define CV_ELEM_SIZE(type) \
722 (CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3))
724 #define IPL2CV_DEPTH(depth) \
725 ((((CV_8U)+(CV_16U<<4)+(CV_32F<<8)+(CV_64F<<16)+(CV_8S<<20)+ \
726 (CV_16S<<24)+(CV_32S<<28)) >> ((((depth) & 0xF0) >> 2) + \
727 (((depth) & IPL_DEPTH_SIGN) ? 20 : 0))) & 15)
737 assert( (
unsigned)CV_MAT_DEPTH(type) <= CV_64F );
738 type = CV_MAT_TYPE(type);
739 m.
type = CV_MAT_MAGIC_VAL | CV_MAT_CONT_FLAG |
type;
751 #define CV_MAT_ELEM_PTR_FAST( mat, row, col, pix_size ) \
752 (assert( (unsigned)(row) < (unsigned)(mat).rows && \
753 (unsigned)(col) < (unsigned)(mat).cols ), \
754 (mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col))
756 #define CV_MAT_ELEM_PTR( mat, row, col ) \
757 CV_MAT_ELEM_PTR_FAST( mat, row, col, CV_ELEM_SIZE((mat).type) )
759 #define CV_MAT_ELEM( mat, elemtype, row, col ) \
760 (*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype)))
767 type = CV_MAT_TYPE(mat->
type);
768 assert( (
unsigned)row < (
unsigned)mat->
rows &&
769 (
unsigned)col < (
unsigned)mat->
cols );
771 if( type == CV_32FC1 )
772 return ((
float*)(
void*)(mat->
data.
ptr + (
size_t)mat->
step*row))[col];
775 assert( type == CV_64FC1 );
776 return ((
double*)(
void*)(mat->
data.
ptr + (
size_t)mat->
step*row))[col];
784 type = CV_MAT_TYPE(mat->
type);
785 assert( (
unsigned)row < (
unsigned)mat->
rows &&
786 (
unsigned)col < (
unsigned)mat->
cols );
788 if( type == CV_32FC1 )
789 ((
float*)(
void*)(mat->
data.
ptr + (size_t)mat->
step*row))[col] = (
float)
value;
792 assert( type == CV_64FC1 );
793 ((
double*)(
void*)(mat->
data.
ptr + (size_t)mat->
step*row))[col] = (
double)
value;
800 int depth = CV_MAT_DEPTH(type);
801 return CV_ELEM_SIZE1(depth)*8 | (depth == CV_8S || depth == CV_16S ||
802 depth == CV_32S ? IPL_DEPTH_SIGN : 0);
810 #define CV_MATND_MAGIC_VAL 0x42430000
811 #define CV_TYPE_NAME_MATND "opencv-nd-matrix"
813 #define CV_MAX_DIM 32
814 #define CV_MAX_DIM_HEAP 1024
842 #define CV_IS_MATND_HDR(mat) \
843 ((mat) != NULL && (((const CvMatND*)(mat))->type & CV_MAGIC_MASK) == CV_MATND_MAGIC_VAL)
845 #define CV_IS_MATND(mat) \
846 (CV_IS_MATND_HDR(mat) && ((const CvMatND*)(mat))->data.ptr != NULL)
853 #define CV_SPARSE_MAT_MAGIC_VAL 0x42440000
854 #define CV_TYPE_NAME_SPARSE_MAT "opencv-sparse-matrix"
874 #define CV_IS_SPARSE_MAT_HDR(mat) \
876 (((const CvSparseMat*)(mat))->type & CV_MAGIC_MASK) == CV_SPARSE_MAT_MAGIC_VAL)
878 #define CV_IS_SPARSE_MAT(mat) \
879 CV_IS_SPARSE_MAT_HDR(mat)
898 #define CV_NODE_VAL(mat,node) ((void*)((uchar*)(node) + (mat)->valoffset))
899 #define CV_NODE_IDX(mat,node) ((int*)((uchar*)(node) + (mat)->idxoffset))
907 #define CV_HIST_MAGIC_VAL 0x42450000
908 #define CV_HIST_UNIFORM_FLAG (1 << 10)
911 #define CV_HIST_RANGES_FLAG (1 << 11)
913 #define CV_HIST_ARRAY 0
914 #define CV_HIST_SPARSE 1
915 #define CV_HIST_TREE CV_HIST_SPARSE
919 #define CV_HIST_UNIFORM 1
931 #define CV_IS_HIST( hist ) \
933 (((CvHistogram*)(hist))->type & CV_MAGIC_MASK) == CV_HIST_MAGIC_VAL && \
934 (hist)->bins != NULL)
936 #define CV_IS_UNIFORM_HIST( hist ) \
937 (((hist)->type & CV_HIST_UNIFORM_FLAG) != 0)
939 #define CV_IS_SPARSE_HIST( hist ) \
940 CV_IS_SPARSE_MAT((hist)->bins)
942 #define CV_HIST_HAS_RANGES( hist ) \
943 (((hist)->type & CV_HIST_RANGES_FLAG) != 0)
993 #define CV_TERMCRIT_ITER 1
994 #define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER
995 #define CV_TERMCRIT_EPS 2
1217 #define CV_WHOLE_SEQ_END_INDEX 0x3fffffff
1218 #define CV_WHOLE_SEQ cvSlice(0, CV_WHOLE_SEQ_END_INDEX)
1233 scalar.
val[0] = val0; scalar.
val[1] = val1;
1234 scalar.
val[2] = val2; scalar.
val[3] = val3;
1242 scalar.
val[0] = val0;
1243 scalar.
val[1] = scalar.
val[2] = scalar.
val[3] = 0;
1250 scalar.
val[0] = val0123;
1251 scalar.
val[1] = val0123;
1252 scalar.
val[2] = val0123;
1253 scalar.
val[3] = val0123;
1270 #define CV_STORAGE_MAGIC_VAL 0x42890000
1283 #define CV_IS_STORAGE(storage) \
1284 ((storage) != NULL && \
1285 (((CvMemStorage*)(storage))->signature & CV_MAGIC_MASK) == CV_STORAGE_MAGIC_VAL)
1310 #define CV_TREE_NODE_FIELDS(node_type) \
1313 struct node_type* h_prev; \
1314 struct node_type* h_next; \
1315 struct node_type* v_prev; \
1316 struct node_type* v_next
1322 #define CV_SEQUENCE_FIELDS() \
1323 CV_TREE_NODE_FIELDS(CvSeq); \
1329 CvMemStorage* storage; \
1330 CvSeqBlock* free_blocks; \
1335 CV_SEQUENCE_FIELDS()
1339 #define CV_TYPE_NAME_SEQ "opencv-sequence"
1340 #define CV_TYPE_NAME_SEQ_TREE "opencv-sequence-tree"
1349 #define CV_SET_ELEM_FIELDS(elem_type) \
1351 struct elem_type* next_free;
1359 #define CV_SET_FIELDS() \
1360 CV_SEQUENCE_FIELDS() \
1361 CvSetElem* free_elems; \
1371 #define CV_SET_ELEM_IDX_MASK ((1 << 26) - 1)
1372 #define CV_SET_ELEM_FREE_FLAG (1 << (sizeof(int)*8-1))
1375 #define CV_IS_SET_ELEM( ptr ) (((CvSetElem*)(ptr))->flags >= 0)
1397 #define CV_GRAPH_EDGE_FIELDS() \
1400 struct CvGraphEdge* next[2]; \
1401 struct CvGraphVtx* vtx[2];
1404 #define CV_GRAPH_VERTEX_FIELDS() \
1406 struct CvGraphEdge* first;
1411 CV_GRAPH_EDGE_FIELDS()
1417 CV_GRAPH_VERTEX_FIELDS()
1432 #define CV_GRAPH_FIELDS() \
1442 #define CV_TYPE_NAME_GRAPH "opencv-graph"
1453 #define CV_CONTOUR_FIELDS() \
1454 CV_SEQUENCE_FIELDS() \
1471 #define CV_SEQ_MAGIC_VAL 0x42990000
1473 #define CV_IS_SEQ(seq) \
1474 ((seq) != NULL && (((CvSeq*)(seq))->flags & CV_MAGIC_MASK) == CV_SEQ_MAGIC_VAL)
1476 #define CV_SET_MAGIC_VAL 0x42980000
1477 #define CV_IS_SET(set) \
1478 ((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL)
1480 #define CV_SEQ_ELTYPE_BITS 12
1481 #define CV_SEQ_ELTYPE_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1)
1483 #define CV_SEQ_ELTYPE_POINT CV_32SC2
1484 #define CV_SEQ_ELTYPE_CODE CV_8UC1
1485 #define CV_SEQ_ELTYPE_GENERIC 0
1486 #define CV_SEQ_ELTYPE_PTR CV_USRTYPE1
1487 #define CV_SEQ_ELTYPE_PPOINT CV_SEQ_ELTYPE_PTR
1488 #define CV_SEQ_ELTYPE_INDEX CV_32SC1
1489 #define CV_SEQ_ELTYPE_GRAPH_EDGE 0
1490 #define CV_SEQ_ELTYPE_GRAPH_VERTEX 0
1491 #define CV_SEQ_ELTYPE_TRIAN_ATR 0
1492 #define CV_SEQ_ELTYPE_CONNECTED_COMP 0
1493 #define CV_SEQ_ELTYPE_POINT3D CV_32FC3
1495 #define CV_SEQ_KIND_BITS 2
1496 #define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<<CV_SEQ_ELTYPE_BITS)
1499 #define CV_SEQ_KIND_GENERIC (0 << CV_SEQ_ELTYPE_BITS)
1500 #define CV_SEQ_KIND_CURVE (1 << CV_SEQ_ELTYPE_BITS)
1501 #define CV_SEQ_KIND_BIN_TREE (2 << CV_SEQ_ELTYPE_BITS)
1504 #define CV_SEQ_KIND_GRAPH (1 << CV_SEQ_ELTYPE_BITS)
1505 #define CV_SEQ_KIND_SUBDIV2D (2 << CV_SEQ_ELTYPE_BITS)
1507 #define CV_SEQ_FLAG_SHIFT (CV_SEQ_KIND_BITS + CV_SEQ_ELTYPE_BITS)
1510 #define CV_SEQ_FLAG_CLOSED (1 << CV_SEQ_FLAG_SHIFT)
1511 #define CV_SEQ_FLAG_SIMPLE (0 << CV_SEQ_FLAG_SHIFT)
1512 #define CV_SEQ_FLAG_CONVEX (0 << CV_SEQ_FLAG_SHIFT)
1513 #define CV_SEQ_FLAG_HOLE (2 << CV_SEQ_FLAG_SHIFT)
1516 #define CV_GRAPH_FLAG_ORIENTED (1 << CV_SEQ_FLAG_SHIFT)
1518 #define CV_GRAPH CV_SEQ_KIND_GRAPH
1519 #define CV_ORIENTED_GRAPH (CV_SEQ_KIND_GRAPH|CV_GRAPH_FLAG_ORIENTED)
1522 #define CV_SEQ_POINT_SET (CV_SEQ_KIND_GENERIC| CV_SEQ_ELTYPE_POINT)
1523 #define CV_SEQ_POINT3D_SET (CV_SEQ_KIND_GENERIC| CV_SEQ_ELTYPE_POINT3D)
1524 #define CV_SEQ_POLYLINE (CV_SEQ_KIND_CURVE | CV_SEQ_ELTYPE_POINT)
1525 #define CV_SEQ_POLYGON (CV_SEQ_FLAG_CLOSED | CV_SEQ_POLYLINE )
1526 #define CV_SEQ_CONTOUR CV_SEQ_POLYGON
1527 #define CV_SEQ_SIMPLE_POLYGON (CV_SEQ_FLAG_SIMPLE | CV_SEQ_POLYGON )
1530 #define CV_SEQ_CHAIN (CV_SEQ_KIND_CURVE | CV_SEQ_ELTYPE_CODE)
1531 #define CV_SEQ_CHAIN_CONTOUR (CV_SEQ_FLAG_CLOSED | CV_SEQ_CHAIN)
1534 #define CV_SEQ_POLYGON_TREE (CV_SEQ_KIND_BIN_TREE | CV_SEQ_ELTYPE_TRIAN_ATR)
1537 #define CV_SEQ_CONNECTED_COMP (CV_SEQ_KIND_GENERIC | CV_SEQ_ELTYPE_CONNECTED_COMP)
1540 #define CV_SEQ_INDEX (CV_SEQ_KIND_GENERIC | CV_SEQ_ELTYPE_INDEX)
1542 #define CV_SEQ_ELTYPE( seq ) ((seq)->flags & CV_SEQ_ELTYPE_MASK)
1543 #define CV_SEQ_KIND( seq ) ((seq)->flags & CV_SEQ_KIND_MASK )
1546 #define CV_IS_SEQ_INDEX( seq ) ((CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_INDEX) && \
1547 (CV_SEQ_KIND(seq) == CV_SEQ_KIND_GENERIC))
1549 #define CV_IS_SEQ_CURVE( seq ) (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE)
1550 #define CV_IS_SEQ_CLOSED( seq ) (((seq)->flags & CV_SEQ_FLAG_CLOSED) != 0)
1551 #define CV_IS_SEQ_CONVEX( seq ) 0
1552 #define CV_IS_SEQ_HOLE( seq ) (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0)
1553 #define CV_IS_SEQ_SIMPLE( seq ) 1
1556 #define CV_IS_SEQ_POINT_SET( seq ) \
1557 ((CV_SEQ_ELTYPE(seq) == CV_32SC2 || CV_SEQ_ELTYPE(seq) == CV_32FC2))
1559 #define CV_IS_SEQ_POINT_SUBSET( seq ) \
1560 (CV_IS_SEQ_INDEX( seq ) || CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_PPOINT)
1562 #define CV_IS_SEQ_POLYLINE( seq ) \
1563 (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && CV_IS_SEQ_POINT_SET(seq))
1565 #define CV_IS_SEQ_POLYGON( seq ) \
1566 (CV_IS_SEQ_POLYLINE(seq) && CV_IS_SEQ_CLOSED(seq))
1568 #define CV_IS_SEQ_CHAIN( seq ) \
1569 (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && (seq)->elem_size == 1)
1571 #define CV_IS_SEQ_CONTOUR( seq ) \
1572 (CV_IS_SEQ_CLOSED(seq) && (CV_IS_SEQ_POLYLINE(seq) || CV_IS_SEQ_CHAIN(seq)))
1574 #define CV_IS_SEQ_CHAIN_CONTOUR( seq ) \
1575 (CV_IS_SEQ_CHAIN( seq ) && CV_IS_SEQ_CLOSED( seq ))
1577 #define CV_IS_SEQ_POLYGON_TREE( seq ) \
1578 (CV_SEQ_ELTYPE (seq) == CV_SEQ_ELTYPE_TRIAN_ATR && \
1579 CV_SEQ_KIND( seq ) == CV_SEQ_KIND_BIN_TREE )
1581 #define CV_IS_GRAPH( seq ) \
1582 (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_GRAPH)
1584 #define CV_IS_GRAPH_ORIENTED( seq ) \
1585 (((seq)->flags & CV_GRAPH_FLAG_ORIENTED) != 0)
1587 #define CV_IS_SUBDIV2D( seq ) \
1588 (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_SUBDIV2D)
1594 #define CV_SEQ_WRITER_FIELDS() \
1597 CvSeqBlock* block; \
1604 CV_SEQ_WRITER_FIELDS()
1609 #define CV_SEQ_READER_FIELDS() \
1612 CvSeqBlock* block; \
1622 CV_SEQ_READER_FIELDS()
1630 #define CV_SEQ_ELEM( seq, elem_type, index ) \
1632 ( assert(sizeof((seq)->first[0]) == sizeof(CvSeqBlock) && \
1633 (seq)->elem_size == sizeof(elem_type)), \
1634 (elem_type*)((seq)->first && (unsigned)index < \
1635 (unsigned)((seq)->first->count) ? \
1636 (seq)->first->data + (index) * sizeof(elem_type) : \
1637 cvGetSeqElem( (CvSeq*)(seq), (index) )))
1638 #define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) )
1641 #define CV_WRITE_SEQ_ELEM_VAR( elem_ptr, writer ) \
1643 if( (writer).ptr >= (writer).block_max ) \
1645 cvCreateSeqBlock( &writer); \
1647 memcpy((writer).ptr, elem_ptr, (writer).seq->elem_size);\
1648 (writer).ptr += (writer).seq->elem_size; \
1651 #define CV_WRITE_SEQ_ELEM( elem, writer ) \
1653 assert( (writer).seq->elem_size == sizeof(elem)); \
1654 if( (writer).ptr >= (writer).block_max ) \
1656 cvCreateSeqBlock( &writer); \
1658 assert( (writer).ptr <= (writer).block_max - sizeof(elem));\
1659 memcpy((writer).ptr, &(elem), sizeof(elem)); \
1660 (writer).ptr += sizeof(elem); \
1665 #define CV_NEXT_SEQ_ELEM( elem_size, reader ) \
1667 if( ((reader).ptr += (elem_size)) >= (reader).block_max ) \
1669 cvChangeSeqBlock( &(reader), 1 ); \
1675 #define CV_PREV_SEQ_ELEM( elem_size, reader ) \
1677 if( ((reader).ptr -= (elem_size)) < (reader).block_min ) \
1679 cvChangeSeqBlock( &(reader), -1 ); \
1684 #define CV_READ_SEQ_ELEM( elem, reader ) \
1686 assert( (reader).seq->elem_size == sizeof(elem)); \
1687 memcpy( &(elem), (reader).ptr, sizeof((elem))); \
1688 CV_NEXT_SEQ_ELEM( sizeof(elem), reader ) \
1692 #define CV_REV_READ_SEQ_ELEM( elem, reader ) \
1694 assert( (reader).seq->elem_size == sizeof(elem)); \
1695 memcpy(&(elem), (reader).ptr, sizeof((elem))); \
1696 CV_PREV_SEQ_ELEM( sizeof(elem), reader ) \
1700 #define CV_READ_CHAIN_POINT( _pt, reader ) \
1702 (_pt) = (reader).pt; \
1703 if( (reader).ptr ) \
1705 CV_READ_SEQ_ELEM( (reader).code, (reader)); \
1706 assert( ((reader).code & ~7) == 0 ); \
1707 (reader).pt.x += (reader).deltas[(int)(reader).code][0]; \
1708 (reader).pt.y += (reader).deltas[(int)(reader).code][1]; \
1712 #define CV_CURRENT_POINT( reader ) (*((CvPoint*)((reader).ptr)))
1713 #define CV_PREV_POINT( reader ) (*((CvPoint*)((reader).prev_elem)))
1715 #define CV_READ_EDGE( pt1, pt2, reader ) \
1717 assert( sizeof(pt1) == sizeof(CvPoint) && \
1718 sizeof(pt2) == sizeof(CvPoint) && \
1719 reader.seq->elem_size == sizeof(CvPoint)); \
1720 (pt1) = CV_PREV_POINT( reader ); \
1721 (pt2) = CV_CURRENT_POINT( reader ); \
1722 (reader).prev_elem = (reader).ptr; \
1723 CV_NEXT_SEQ_ELEM( sizeof(CvPoint), (reader)); \
1729 #define CV_NEXT_GRAPH_EDGE( edge, vertex ) \
1730 (assert((edge)->vtx[0] == (vertex) || (edge)->vtx[1] == (vertex)), \
1731 (edge)->next[(edge)->vtx[1] == (vertex)])
1743 #define CV_STORAGE_READ 0
1744 #define CV_STORAGE_WRITE 1
1745 #define CV_STORAGE_WRITE_TEXT CV_STORAGE_WRITE
1746 #define CV_STORAGE_WRITE_BINARY CV_STORAGE_WRITE
1747 #define CV_STORAGE_APPEND 2
1748 #define CV_STORAGE_MEMORY 4
1749 #define CV_STORAGE_FORMAT_MASK (7<<3)
1750 #define CV_STORAGE_FORMAT_AUTO 0
1751 #define CV_STORAGE_FORMAT_XML 8
1752 #define CV_STORAGE_FORMAT_YAML 16
1774 #define CV_NODE_NONE 0
1775 #define CV_NODE_INT 1
1776 #define CV_NODE_INTEGER CV_NODE_INT
1777 #define CV_NODE_REAL 2
1778 #define CV_NODE_FLOAT CV_NODE_REAL
1779 #define CV_NODE_STR 3
1780 #define CV_NODE_STRING CV_NODE_STR
1781 #define CV_NODE_REF 4
1782 #define CV_NODE_SEQ 5
1783 #define CV_NODE_MAP 6
1784 #define CV_NODE_TYPE_MASK 7
1786 #define CV_NODE_TYPE(flags) ((flags) & CV_NODE_TYPE_MASK)
1789 #define CV_NODE_FLOW 8
1790 #define CV_NODE_USER 16
1791 #define CV_NODE_EMPTY 32
1792 #define CV_NODE_NAMED 64
1794 #define CV_NODE_IS_INT(flags) (CV_NODE_TYPE(flags) == CV_NODE_INT)
1795 #define CV_NODE_IS_REAL(flags) (CV_NODE_TYPE(flags) == CV_NODE_REAL)
1796 #define CV_NODE_IS_STRING(flags) (CV_NODE_TYPE(flags) == CV_NODE_STRING)
1797 #define CV_NODE_IS_SEQ(flags) (CV_NODE_TYPE(flags) == CV_NODE_SEQ)
1798 #define CV_NODE_IS_MAP(flags) (CV_NODE_TYPE(flags) == CV_NODE_MAP)
1799 #define CV_NODE_IS_COLLECTION(flags) (CV_NODE_TYPE(flags) >= CV_NODE_SEQ)
1800 #define CV_NODE_IS_FLOW(flags) (((flags) & CV_NODE_FLOW) != 0)
1801 #define CV_NODE_IS_EMPTY(flags) (((flags) & CV_NODE_EMPTY) != 0)
1802 #define CV_NODE_IS_USER(flags) (((flags) & CV_NODE_USER) != 0)
1803 #define CV_NODE_HAS_NAME(flags) (((flags) & CV_NODE_NAMED) != 0)
1805 #define CV_NODE_SEQ_SIMPLE 256
1806 #define CV_NODE_SEQ_IS_SIMPLE(seq) (((seq)->flags & CV_NODE_SEQ_SIMPLE) != 0)
struct CvTermCriteria CvTermCriteria
int height
Definition: types_c.h:482
float height
Definition: types_c.h:1158
Definition: types_c.h:244
int free_space
Definition: types_c.h:1291
int i
Definition: types_c.h:200
int anchorX
Definition: types_c.h:516
double z
Definition: types_c.h:1119
Definition: types_c.h:253
CvPoint2D32f center
Definition: types_c.h:1175
struct CvSetElem CvSetElem
void *(CV_CDECL * CvCloneFunc)(const void *struct_ptr)
Definition: types_c.h:1852
uint64 u
Definition: types_c.h:209
uchar * ptr
Definition: types_c.h:656
Definition: types_c.h:1808
float * fl
Definition: types_c.h:659
CvSeq * seq
Definition: types_c.h:1838
GLenum GLint GLint y
Definition: core_c.h:613
double x
Definition: types_c.h:1117
uchar * ptr
Definition: types_c.h:1187
int curidx
Definition: types_c.h:894
CvFileNode * node
Definition: core_c.h:1638
Definition: types_c.h:239
Definition: types_c.h:1421
Definition: types_c.h:816
int height
Definition: types_c.h:508
void(CV_CDECL * CvReleaseFunc)(void **struct_dblptr)
Definition: types_c.h:1848
IplImage CvRect * roi
Definition: legacy.hpp:234
Definition: types_c.h:1021
signed char schar
Definition: types_c.h:174
Definition: types_c.h:1857
struct CvMemBlock * next
Definition: types_c.h:1266
int nRows
Definition: types_c.h:526
Definition: types_c.h:890
Definition: types_c.h:1885
uint64 CvRNG
Definition: types_c.h:399
int idxoffset
Definition: types_c.h:869
int CvScalar value
Definition: core_c.h:340
int hdr_refcount
Definition: types_c.h:863
struct CvMatND::@103 dim[CV_MAX_DIM]
Definition: types_c.h:1875
struct CvMemBlock * prev
Definition: types_c.h:1265
int type
Definition: types_c.h:999
int origin
Definition: types_c.h:477
CvMatND mat
Definition: types_c.h:927
void ** hashtable
Definition: types_c.h:866
int CvScalar * scalar
Definition: core_c.h:209
struct CvSeqWriter CvSeqWriter
const char ** attr
Definition: types_c.h:1757
const CvMat CvMat int method CV_DEFAULT(CV_FM_RANSAC)
float thresh[CV_MAX_DIM][2]
Definition: types_c.h:925
CV_INLINE int cvCeil(double value)
Definition: types_c.h:360
int height
Definition: types_c.h:667
struct CvSet * heap
Definition: types_c.h:865
int * values
Definition: types_c.h:518
int nChannels
Definition: types_c.h:469
Definition: types_c.h:921
CV_INLINE int cvFloor(double value)
Definition: types_c.h:343
int i
Definition: types_c.h:1836
Definition: types_c.h:951
Definition: types_c.h:523
Definition: types_c.h:1459
Definition: types_c.h:1138
double * db
Definition: types_c.h:828
int nCols
Definition: types_c.h:525
struct CvSparseNode * next
Definition: types_c.h:886
int CvHistType
Definition: types_c.h:905
struct CvSeqReader CvSeqReader
int anchorY
Definition: types_c.h:517
Definition: types_c.h:265
int64 i
Definition: types_c.h:208
float x
Definition: types_c.h:1077
int height
Definition: types_c.h:1141
Definition: types_c.h:247
Definition: types_c.h:240
float ** thresh2
Definition: types_c.h:926
float width
Definition: types_c.h:1157
int anchorY
Definition: types_c.h:528
CV_INLINE CvScalar cvRealScalar(double val0)
Definition: types_c.h:1239
short * s
Definition: types_c.h:657
int cols
Definition: types_c.h:672
void(CV_CDECL * CvWriteFunc)(CvFileStorage *storage, const char *name, const void *struct_ptr, CvAttrList attributes)
Definition: types_c.h:1850
struct CvSparseMat CvSparseMat
Definition: types_c.h:1353
CV_INLINE CvPoint cvPoint(int x, int y)
Definition: types_c.h:1029
struct CvLineIterator CvLineIterator
Definition: types_c.h:1755
int width
Definition: types_c.h:507
CV_INLINE double cvmGet(const CvMat *mat, int row, int col)
Definition: types_c.h:763
int loaded_from
Definition: types_c.h:1881
schar * data
Definition: types_c.h:1305
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: core_c.h:403
Definition: types_c.h:858
CvIsInstanceFunc is_instance
Definition: types_c.h:1864
CV_INLINE CvPoint3D64f cvPoint3D64f(double x, double y, double z)
Definition: types_c.h:1124
int align
Definition: types_c.h:479
Definition: types_c.h:235
CvRect r
Definition: core_c.h:1282
struct CvPoint3D64f CvPoint3D64f
int type
Definition: types_c.h:923
Definition: types_c.h:251
CvCloneFunc clone
Definition: types_c.h:1868
Definition: types_c.h:228
Definition: types_c.h:238
struct CvSize2D32f CvSize2D32f
Definition: types_c.h:252
CvRNG * rng
Definition: core_c.h:652
CV_INLINE CvPoint cvPointFrom32f(CvPoint2D32f point)
Definition: types_c.h:1065
Definition: types_c.h:237
Definition: types_c.h:1446
int y
Definition: types_c.h:1024
double val[4]
Definition: types_c.h:1225
struct _IplTileInfo IplTileInfo
Definition: types_c.h:500
struct CvAttrList * next
Definition: types_c.h:1758
void *(CV_CDECL * CvReadFunc)(CvFileStorage *storage, CvFileNode *node)
Definition: types_c.h:1849
Definition: types_c.h:1155
float y
Definition: types_c.h:1078
struct CvSparseMatIterator CvSparseMatIterator
char * imageData
Definition: types_c.h:490
Definition: types_c.h:270
void * imageId
Definition: types_c.h:485
CV_INLINE CvSize cvSize(int width, int height)
Definition: types_c.h:1145
double y
Definition: types_c.h:1099
Definition: types_c.h:1298
int(CV_CDECL * CvIsInstanceFunc)(const void *struct_ptr)
Definition: types_c.h:1847
Definition: types_c.h:259
struct CvHistogram CvHistogram
CV_INLINE int cvRound(double value)
Definition: types_c.h:308
int depth
Definition: types_c.h:471
int xOffset
Definition: types_c.h:505
CvRect rect
Definition: core_c.h:100
Definition: types_c.h:248
double CvStereoLineCoeff CvPoint3D64f * point
Definition: legacy.hpp:558
Definition: types_c.h:1202
int tag
Definition: types_c.h:1830
int imageSize
Definition: types_c.h:487
Definition: types_c.h:242
Definition: types_c.h:224
Definition: types_c.h:1184
typedef void(CV_CDECL *CvMouseCallback)(int event
CV_INLINE IplROI cvRectToROI(CvRect rect, int coi)
Definition: types_c.h:973
int yOffset
Definition: types_c.h:506
CV_INLINE CvTermCriteria cvTermCriteria(int type, int max_iter, double epsilon)
Definition: types_c.h:1007
int * i
Definition: types_c.h:658
Definition: types_c.h:269
int step
Definition: types_c.h:836
char * ptr
Definition: types_c.h:1811
CV_GRAPH_VERTEX_FIELDS() CvPoint2D32f *ptr
const char * name
Definition: core_c.h:1538
int step
Definition: types_c.h:648
int alphaChannel
Definition: types_c.h:470
Definition: types_c.h:261
double start
Definition: core_c.h:774
CvString str
Definition: types_c.h:1820
Definition: types_c.h:260
Definition: types_c.h:250
GLenum GLenum GLvoid * row
CvFileNodeHash * map
Definition: types_c.h:1839
Definition: types_c.h:1415
CV_INLINE CvPoint2D32f cvPointTo32f(CvPoint point)
Definition: types_c.h:1059
unsigned __int64 uint64_t
Definition: dist.h:39
struct CvStringHashNode * next
Definition: types_c.h:1821
int width
Definition: types_c.h:673
Definition: types_c.h:218
Definition: types_c.h:268
int height
Definition: types_c.h:956
int type
Definition: types_c.h:647
Definition: types_c.h:1602
int width
Definition: highgui_c.h:130
Definition: types_c.h:246
struct CvModuleInfo CvModuleInfo
struct _IplConvKernelFP IplConvKernelFP
int end_index
Definition: types_c.h:1204
struct CvSeqBlock CvSeqBlock
char channelSeq[4]
Definition: types_c.h:474
int coi
Definition: types_c.h:504
int free_space
Definition: types_c.h:1279
CvSparseNode * node
Definition: types_c.h:893
Definition: types_c.h:1364
unsigned hashval
Definition: types_c.h:885
struct CvMemStoragePos CvMemStoragePos
int width
Definition: types_c.h:955
char * imageDataOrigin
Definition: types_c.h:494
CvArr const CvMat * mat
Definition: core_c.h:700
short * s
Definition: types_c.h:830
GLenum GLsizei GLsizei height
CV_INLINE int cvIsNaN(double value)
Definition: types_c.h:379
int type
Definition: types_c.h:860
Definition: types_c.h:258
Definition: types_c.h:1272
struct _IplImage IplImage
CV_INLINE CvScalar cvScalar(double val0, double val1 CV_DEFAULT(0), double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0))
Definition: types_c.h:1229
Definition: types_c.h:245
int coi
Definition: core_c.h:94
struct _IplConvKernel IplConvKernel
Definition: types_c.h:263
struct CvTypeInfo * info
Definition: types_c.h:1831
Definition: types_c.h:1436
struct CvSparseNode CvSparseNode
CvSize2D32f size
Definition: types_c.h:1176
int y
Definition: types_c.h:954
Definition: types_c.h:234
int err
Definition: types_c.h:1190
size_t size_t CvMemStorage * storage
Definition: core_c.h:946
int width
Definition: types_c.h:1140
struct CvSeqBlock * next
Definition: types_c.h:1301
GLenum GLint x
Definition: core_c.h:632
Definition: types_c.h:206
int CVStatus
Definition: types_c.h:214
CvSparseMat * mat
Definition: types_c.h:892
int dims
Definition: types_c.h:819
Definition: types_c.h:230
Definition: types_c.h:256
void CvArr
Definition: types_c.h:196
CvReadFunc read
Definition: types_c.h:1866
const char * name
Definition: types_c.h:1888
struct CvFileStorage CvFileStorage
Definition: types_c.h:1740
CvSlice slice
Definition: core_c.h:1053
struct _IplROI * roi
Definition: types_c.h:483
int dims
Definition: types_c.h:861
struct CvSeqBlock * prev
Definition: types_c.h:1300
int x
Definition: types_c.h:1023
Definition: types_c.h:232
int * i
Definition: types_c.h:829
Definition: types_c.h:1828
Definition: types_c.h:262
CV_SEQUENCE_FIELDS() CvPoint origin
Definition: types_c.h:257
int hashsize
Definition: types_c.h:867
CV_INLINE CvPoint3D32f cvPoint3D32f(double x, double y, double z)
Definition: types_c.h:1084
float * fl
Definition: types_c.h:827
const char * type_name
Definition: types_c.h:1863
Definition: types_c.h:645
int valoffset
Definition: types_c.h:868
Definition: types_c.h:225
struct CvGenericHash CvFileNodeHash
Definition: types_c.h:1825
int nSize
Definition: types_c.h:467
CV_INLINE CvAttrList cvAttrList(const char **attr CV_DEFAULT(NULL), CvAttrList *next CV_DEFAULT(NULL))
Definition: types_c.h:1762
struct CvTypeInfo * prev
Definition: types_c.h:1861
struct CvFileNode CvFileNode
int signature
Definition: types_c.h:1274
Definition: types_c.h:1288
int minus_step
Definition: types_c.h:1194
Definition: types_c.h:227
int rows
Definition: core_c.h:114
struct CvPoint2D32f CvPoint2D32f
CV_INLINE CvScalar cvScalarAll(double val0123)
Definition: types_c.h:1247
struct CvTypeInfo CvTypeInfo
struct CvTypeInfo * next
Definition: types_c.h:1862
Definition: types_c.h:465
Definition: types_c.h:226
Definition: types_c.h:997
CV_INLINE CvRNG cvRNG(int64 seed CV_DEFAULT(-1))
Definition: types_c.h:403
Definition: types_c.h:254
typedef int64_t(APIENTRYP GLEEPFNGLXSWAPBUFFERSMSCOMLPROC)(Display *dpy
int int y
Definition: highgui_c.h:186
Definition: types_c.h:217
double f
Definition: types_c.h:1835
GLsizei const GLfloat * value
Definition: core_c.h:341
float * values
Definition: types_c.h:529
float angle
Definition: types_c.h:1177
struct CvContour CvContour
CV_INLINE double cvRandReal(CvRNG *rng)
Definition: types_c.h:419
void ** func_addr
Definition: types_c.h:1877
int nRows
Definition: types_c.h:515
int ID
Definition: types_c.h:468
int cols
Definition: core_c.h:109
Definition: types_c.h:267
GLuint GLuint GLsizei GLenum type
Definition: core_c.h:114
int BorderMode[4]
Definition: types_c.h:492
__int64 int64
Definition: types_c.h:158
int start_index
Definition: types_c.h:1302
union CvFileNode::@104 data
int len
Definition: types_c.h:1810
CV_INLINE CvPoint2D32f cvPoint2D32f(double x, double y)
Definition: types_c.h:1048
int int type
Definition: core_c.h:109
int * refcount
Definition: types_c.h:651
CV_INLINE CvSize2D32f cvSize2D32f(double width, double height)
Definition: types_c.h:1163
char colorModel[4]
Definition: types_c.h:473
struct CvGraphVtx2D CvGraphVtx2D
CvPluginFuncInfo * func_tab
Definition: types_c.h:1890
int rows
Definition: types_c.h:666
Definition: types_c.h:1173
unsigned short ushort
Definition: types_c.h:171
CvMemBlock * top
Definition: types_c.h:1276
unsigned hashval
Definition: types_c.h:1819
Definition: types_c.h:198
Definition: types_c.h:266
double f
Definition: types_c.h:210
float y
Definition: types_c.h:1043
int plus_step
Definition: types_c.h:1193
int block_size
Definition: types_c.h:1278
Definition: types_c.h:255
Definition: types_c.h:1223
const char * ptr
Definition: core_c.h:942
Definition: types_c.h:1817
int nShiftR
Definition: types_c.h:519
Definition: types_c.h:264
CvMemBlock * bottom
Definition: types_c.h:1275
struct CvPoint2D64f CvPoint2D64f
int hdr_refcount
Definition: types_c.h:822
Definition: types_c.h:243
Definition: types_c.h:1409
CV_INLINE CvSlice cvSlice(int start, int end)
Definition: types_c.h:1208
Definition: types_c.h:502
double * db
Definition: types_c.h:660
struct _IplImage * maskROI
Definition: types_c.h:484
Definition: types_c.h:233
Definition: types_c.h:223
struct CvMemStorage * parent
Definition: types_c.h:1277
int BorderConst[4]
Definition: types_c.h:493
struct CvModuleInfo * next
Definition: types_c.h:1887
unsigned char uchar
Definition: types_c.h:170
Definition: types_c.h:1333
int int height
Definition: highgui_c.h:130
::max::max::max float
Definition: functional.hpp:326
Definition: types_c.h:1263
struct CvStringHashNode CvStringHashNode
const void * struct_ptr
Definition: core_c.h:1681
::max::max int
Definition: functional.hpp:324
Definition: types_c.h:883
int dataOrder
Definition: types_c.h:475
void * default_func_addr
Definition: types_c.h:1878
const char * func_names
Definition: types_c.h:1879
Definition: types_c.h:1620
double epsilon
Definition: types_c.h:1003
int search_modules
Definition: types_c.h:1880
int widthStep
Definition: types_c.h:491
Definition: types_c.h:1075
CvMemBlock * top
Definition: types_c.h:1290
int x
Definition: highgui_c.h:186
int start_index
Definition: types_c.h:1204
int plus_delta
Definition: types_c.h:1191
double double end
Definition: core_c.h:774
double x
Definition: types_c.h:1098
Definition: types_c.h:219
int size
Definition: types_c.h:835
CV_INLINE int cvIplDepth(int type)
Definition: types_c.h:798
float f
Definition: types_c.h:202
Definition: types_c.h:236
int count
Definition: types_c.h:1304
unsigned u
Definition: types_c.h:201
float x
Definition: types_c.h:1042
Definition: types_c.h:231
Definition: types_c.h:229
CvArr CvArr * temp
Definition: imgproc_c.h:242
int x
Definition: types_c.h:953
GLint GLint GLsizei GLsizei GLsizei depth
Definition: core_c.h:76
int anchorX
Definition: types_c.h:527
unsigned __int64 uint64
Definition: types_c.h:159
int type
Definition: types_c.h:818
CvString str
Definition: types_c.h:1837
Definition: types_c.h:1040
int width
Definition: types_c.h:481
CV_INLINE CvPoint2D64f cvPoint2D64f(double x, double y)
Definition: types_c.h:1104
struct CvAttrList CvAttrList
CV_INLINE unsigned cvRandInt(CvRNG *rng)
Definition: types_c.h:410
const char * version
Definition: types_c.h:1889
Definition: types_c.h:249
CV_INLINE CvRect cvROIToRect(IplROI roi)
Definition: types_c.h:986
Definition: types_c.h:241
int * refcount
Definition: types_c.h:862
CvReleaseFunc release
Definition: types_c.h:1865
struct _IplTileInfo * tileInfo
Definition: types_c.h:486
struct CvGraphVtx CvGraphVtx
uchar * ptr
Definition: types_c.h:826
double y
Definition: types_c.h:1118
Definition: types_c.h:221
struct CvMemBlock CvMemBlock
CV_INLINE void cvmSet(CvMat *mat, int row, int col, double value)
Definition: types_c.h:781
int * refcount
Definition: types_c.h:821
struct CvMemStorage CvMemStorage
Definition: types_c.h:222
GLsizeiptr size
Definition: core_c.h:939
CV_INLINE CvMat cvMat(int rows, int cols, int type, void *data CV_DEFAULT(NULL))
Definition: types_c.h:733
int minus_delta
Definition: types_c.h:1192
Definition: types_c.h:1115
CV_INLINE CvRect cvRect(int x, int y, int width, int height)
Definition: types_c.h:960
CvWriteFunc write
Definition: types_c.h:1867
float z
Definition: types_c.h:1079
CvContour CvPoint2DSeq
Definition: types_c.h:1465
const CvArr * next
Definition: tracking.hpp:102
struct CvPluginFuncInfo CvPluginFuncInfo
int hdr_refcount
Definition: types_c.h:652
int nCols
Definition: types_c.h:514
int header_size
Definition: types_c.h:1860
struct CvPoint3D32f CvPoint3D32f
Definition: types_c.h:220
CV_INLINE int cvIsInf(double value)
Definition: types_c.h:388
struct CvGraphEdge CvGraphEdge
Definition: types_c.h:512
int max_iter
Definition: types_c.h:1002
Definition: types_c.h:1096
int flags
Definition: types_c.h:1859
CvArr * bins
Definition: types_c.h:924