45#ifndef OPENCV_CORE_C_H
46#define OPENCV_CORE_C_H
48#include "opencv2/core/types_c.h"
58# if defined(__clang__)
60# pragma GCC diagnostic ignored "-Wreturn-type-c-linkage"
61# elif defined(_MSC_VER)
63# pragma warning(disable:4190)
91CVAPI(
void) cvFree_(
void* ptr );
92#define cvFree(ptr) (cvFree_(*(ptr)), *(ptr)=0)
114 int align CV_DEFAULT(4));
223#define CV_AUTOSTEP 0x7fffffff
361#define cvGetSubArr cvGetSubRect
376 int delta_row CV_DEFAULT(1));
385 return cvGetRows(
arr,
submat, row, row + 1, 1 );
411 return cvGetCols(
arr,
submat, col, col + 1 );
424 int diag CV_DEFAULT(0));
428 int extend_to_12 CV_DEFAULT(0) );
465 int type,
void*
data CV_DEFAULT(NULL) );
581#define CV_NO_DEPTH_CHECK 1
582#define CV_NO_CN_CHECK 2
583#define CV_NO_SIZE_CHECK 4
591 int flags CV_DEFAULT(0) );
657 int*
type CV_DEFAULT(NULL));
669 int create_node CV_DEFAULT(1),
670 unsigned* precalc_hashval CV_DEFAULT(NULL));
783 int*
coi CV_DEFAULT(NULL),
784 int allowND CV_DEFAULT(0));
839#define cvReshapeND( arr, header, new_cn, new_dims, new_sizes ) \
840 cvReshapeMatND( (arr), sizeof(*(header)), (header), \
841 (new_cn), (new_dims), (new_sizes))
871 int new_cn,
int new_rows CV_DEFAULT(0) );
934 int*
step CV_DEFAULT(NULL),
935 CvSize* roi_size CV_DEFAULT(NULL));
983#define cvZero cvSetZero
1022 double scale CV_DEFAULT(1),
1023 double shift CV_DEFAULT(0) );
1024#define cvCvtScale cvConvertScale
1025#define cvScale cvConvertScale
1026#define cvConvert( src, dst ) cvConvertScale( (src), (dst), 1, 0 )
1035 double scale CV_DEFAULT(1),
1036 double shift CV_DEFAULT(0) );
1037#define cvCvtScaleAbs cvConvertScaleAbs
1090#define cvAXPY( A, real_scalar, B, C ) cvScaleAdd(A, cvRealScalar(real_scalar), B, C)
1179#define cvAbs( src, dst ) cvAbsDiffS( (src), (dst), cvScalarAll(0))
1189 int angle_in_degrees CV_DEFAULT(0));
1196 int angle_in_degrees CV_DEFAULT(0));
1218#define CV_CHECK_RANGE 1
1219#define CV_CHECK_QUIET 2
1226#define cvCheckArray cvCheckArr
1228#define CV_RAND_UNI 0
1229#define CV_RAND_NORMAL 1
1251 double iter_factor CV_DEFAULT(1.));
1253#define CV_SORT_EVERY_ROW 0
1254#define CV_SORT_EVERY_COLUMN 1
1255#define CV_SORT_ASCENDING 0
1256#define CV_SORT_DESCENDING 16
1259 CvArr* idxmat CV_DEFAULT(NULL),
1260 int flags CV_DEFAULT(0));
1267 int maxiter CV_DEFAULT(20),
int fig CV_DEFAULT(100));
1286#define cvMatMulAdd( src1, src2, src3, dst ) cvGEMM( (src1), (src2), 1., (src3), 1., (dst), 0 )
1287#define cvMatMul( src1, src2, dst ) cvMatMulAdd( (src1), (src2), NULL, (dst))
1289#define CV_GEMM_A_T 1
1290#define CV_GEMM_B_T 2
1291#define CV_GEMM_C_T 4
1296 int tABC CV_DEFAULT(0));
1297#define cvMatMulAddEx cvGEMM
1303 const CvMat* shiftvec CV_DEFAULT(NULL));
1304#define cvMatMulAddS cvTransform
1313 double scale CV_DEFAULT(1.) );
1317#define cvT cvTranspose
1320CVAPI(
void) cvCompleteSymm(
CvMat* matrix,
int LtoR CV_DEFAULT(0) );
1326 int flip_mode CV_DEFAULT(0));
1327#define cvMirror cvFlip
1330#define CV_SVD_MODIFY_A 1
1336 CvArr*
V CV_DEFAULT(NULL),
int flags CV_DEFAULT(0));
1347#define CV_CHOLESKY 3
1354#define cvInv cvInvert
1369 double eps CV_DEFAULT(0),
1370 int lowindex CV_DEFAULT(-1),
1371 int highindex CV_DEFAULT(-1));
1390#define CV_COVAR_SCRAMBLED 0
1393#define CV_COVAR_NORMAL 1
1397#define CV_COVAR_USE_AVG 2
1400#define CV_COVAR_SCALE 4
1403#define CV_COVAR_ROWS 8
1406#define CV_COVAR_COLS 16
1416#define CV_PCA_DATA_AS_ROW 0
1417#define CV_PCA_DATA_AS_COL 1
1418#define CV_PCA_USE_AVG 2
1430#define cvMahalonobis cvMahalanobis
1451 CvPoint* min_loc CV_DEFAULT(NULL),
1452 CvPoint* max_loc CV_DEFAULT(NULL),
1462#define CV_NORM_MASK 7
1463#define CV_RELATIVE 8
1467#define CV_DIFF_C (CV_DIFF | CV_C)
1468#define CV_DIFF_L1 (CV_DIFF | CV_L1)
1469#define CV_DIFF_L2 (CV_DIFF | CV_L2)
1470#define CV_RELATIVE_C (CV_RELATIVE | CV_C)
1471#define CV_RELATIVE_L1 (CV_RELATIVE | CV_L1)
1472#define CV_RELATIVE_L2 (CV_RELATIVE | CV_L2)
1478CVAPI(
double) cvNorm(
const CvArr* arr1,
const CvArr* arr2 CV_DEFAULT(NULL),
1484 double a CV_DEFAULT(1.),
double b CV_DEFAULT(0.),
1485 int norm_type CV_DEFAULT(
CV_L2),
1492#define CV_REDUCE_SUM 0
1493#define CV_REDUCE_AVG 1
1494#define CV_REDUCE_MAX 2
1495#define CV_REDUCE_MIN 3
1510#define CV_DXT_FORWARD 0
1511#define CV_DXT_INVERSE 1
1512#define CV_DXT_SCALE 2
1513#define CV_DXT_INV_SCALE (CV_DXT_INVERSE + CV_DXT_SCALE)
1514#define CV_DXT_INVERSE_SCALE CV_DXT_INV_SCALE
1515#define CV_DXT_ROWS 4
1516#define CV_DXT_MUL_CONJ 8
1526 int nonzero_rows CV_DEFAULT(0) );
1536CVAPI(
int) cvGetOptimalDFTSize(
int size0 );
1614 int count,
int in_front CV_DEFAULT(0) );
1618 int count,
int in_front CV_DEFAULT(0) );
1623 const void*
element CV_DEFAULT(NULL));
1669 int reverse CV_DEFAULT(0) );
1679 int is_relative CV_DEFAULT(0));
1695 int copy_data CV_DEFAULT(0));
1737 CvSetElem** inserted_elem CV_DEFAULT(NULL) );
1745 set_header->free_elems =
elem->next_free;
1747 set_header->active_count++;
1750 cvSetAdd( set_header, NULL, &
elem );
1758 assert( _elem->flags >= 0 );
1759 _elem->next_free = set_header->free_elems;
1761 set_header->free_elems = _elem;
1762 set_header->active_count--;
1786 CvGraphVtx** inserted_vtx CV_DEFAULT(NULL) );
1818#define cvGraphFindEdge cvFindGraphEdge
1819#define cvGraphFindEdgeByPtr cvFindGraphEdgeByPtr
1831#define cvGetGraphVtx( graph, idx ) (CvGraphVtx*)cvGetSetElem((CvSet*)(graph), (idx))
1834#define cvGraphVtxIdx( graph, vtx ) ((vtx)->flags & CV_SET_ELEM_IDX_MASK)
1837#define cvGraphEdgeIdx( graph, edge ) ((edge)->flags & CV_SET_ELEM_IDX_MASK)
1839#define cvGraphGetVtxCount( graph ) ((graph)->active_count)
1840#define cvGraphGetEdgeCount( graph ) ((graph)->edges->active_count)
1842#define CV_GRAPH_VERTEX 1
1843#define CV_GRAPH_TREE_EDGE 2
1844#define CV_GRAPH_BACK_EDGE 4
1845#define CV_GRAPH_FORWARD_EDGE 8
1846#define CV_GRAPH_CROSS_EDGE 16
1847#define CV_GRAPH_ANY_EDGE 30
1848#define CV_GRAPH_NEW_TREE 32
1849#define CV_GRAPH_BACKTRACKING 64
1850#define CV_GRAPH_OVER -1
1852#define CV_GRAPH_ALL_ITEMS -1
1855#define CV_GRAPH_ITEM_VISITED_FLAG (1 << 30)
1856#define CV_IS_GRAPH_VERTEX_VISITED(vtx) \
1857 (((CvGraphVtx*)(vtx))->flags & CV_GRAPH_ITEM_VISITED_FLAG)
1858#define CV_IS_GRAPH_EDGE_VISITED(edge) \
1859 (((CvGraphEdge*)(edge))->flags & CV_GRAPH_ITEM_VISITED_FLAG)
1860#define CV_GRAPH_SEARCH_TREE_NODE_FLAG (1 << 29)
1861#define CV_GRAPH_FORWARD_EDGE_FLAG (1 << 28)
1916CVAPI(
void) cvRemoveNodeFromTree(
void* node,
void*
frame );
1925#define CV_KMEANS_USE_INITIAL_LABELS 1
1929 CvArr* _centers CV_DEFAULT(0),
double* compactness CV_DEFAULT(0) );
1936CVAPI(
int) cvUseOptimized(
int on_off );
1939 (
int,
int,
int,
char*,
char*,
int,
int,
int,
int,
int,
1968#define CV_TURN_ON_IPL_COMPATIBILITY() \
1969 cvSetIPLAllocators( iplCreateImageHeader, iplAllocateImage, \
1970 iplDeallocate, iplCreateROI, iplCloneImage )
2000 int flags,
const char* encoding CV_DEFAULT(NULL) );
2008CVAPI(
void) cvReleaseFileStorage( CvFileStorage** fs );
2011CVAPI(
const char*) cvAttrValue(
const CvAttrList* attr,
const char* attr_name );
2039CVAPI(
void) cvStartWriteStruct( CvFileStorage* fs,
const char* name,
2040 int struct_flags,
const char* type_name CV_DEFAULT(NULL),
2041 CvAttrList attributes CV_DEFAULT(cvAttrList()));
2047CVAPI(
void) cvEndWriteStruct( CvFileStorage* fs );
2057CVAPI(
void) cvWriteInt( CvFileStorage* fs,
const char* name,
int value );
2084CVAPI(
void) cvWriteReal( CvFileStorage* fs,
const char* name,
double value );
2097CVAPI(
void) cvWriteString( CvFileStorage* fs,
const char* name,
2098 const char* str,
int quote CV_DEFAULT(0) );
2109CVAPI(
void) cvWriteComment( CvFileStorage* fs,
const char* comment,
2157CVAPI(
void) cvWrite( CvFileStorage* fs,
const char* name,
const void* ptr,
2158 CvAttrList attributes CV_DEFAULT(cvAttrList()));
2184CVAPI(
void) cvStartNextStream( CvFileStorage* fs );
2197CVAPI(
void) cvWriteRawData( CvFileStorage* fs,
const void* src,
2198 int len,
const char* dt );
2214CVAPI(
void) cvWriteRawDataBase64( CvFileStorage* fs,
const void* src,
2215 int len,
const char* dt );
2285CVAPI(CvStringHashNode*) cvGetHashedKey( CvFileStorage* fs,
const char* name,
2286 int len CV_DEFAULT(-1),
2287 int create_missing CV_DEFAULT(0));
2300CVAPI(CvFileNode*) cvGetRootFileNode(
const CvFileStorage* fs,
2301 int stream_index CV_DEFAULT(0) );
2313CVAPI(CvFileNode*) cvGetFileNode( CvFileStorage* fs, CvFileNode* map,
2314 const CvStringHashNode* key,
2315 int create_missing CV_DEFAULT(0) );
2329CVAPI(CvFileNode*) cvGetFileNodeByName(
const CvFileStorage* fs,
2330 const CvFileNode* map,
2343CV_INLINE int cvReadInt(
const CvFileNode* node,
int default_value CV_DEFAULT(0) )
2345 return !node ? default_value :
2346 CV_NODE_IS_INT(node->tag) ? node->data.i :
2347 CV_NODE_IS_REAL(node->tag) ?
cvRound(node->data.f) : 0x7fffffff;
2358CV_INLINE int cvReadIntByName(
const CvFileStorage* fs,
const CvFileNode* map,
2359 const char* name,
int default_value CV_DEFAULT(0) )
2361 return cvReadInt( cvGetFileNodeByName( fs, map, name ), default_value );
2374CV_INLINE double cvReadReal(
const CvFileNode* node,
double default_value CV_DEFAULT(0.) )
2376 return !node ? default_value :
2377 CV_NODE_IS_INT(node->tag) ? (double)node->data.i :
2378 CV_NODE_IS_REAL(node->tag) ? node->
data.f : 1e300;
2389CV_INLINE double cvReadRealByName(
const CvFileStorage* fs,
const CvFileNode* map,
2390 const char* name,
double default_value CV_DEFAULT(0.) )
2392 return cvReadReal( cvGetFileNodeByName( fs, map, name ), default_value );
2404CV_INLINE const char* cvReadString(
const CvFileNode* node,
2405 const char* default_value CV_DEFAULT(NULL) )
2407 return !node ? default_value : CV_NODE_IS_STRING(node->tag) ? node->data.str.ptr : 0;
2418CV_INLINE const char* cvReadStringByName(
const CvFileStorage* fs,
const CvFileNode* map,
2419 const char* name,
const char* default_value CV_DEFAULT(NULL) )
2421 return cvReadString( cvGetFileNodeByName( fs, map, name ), default_value );
2439CVAPI(
void*) cvRead( CvFileStorage* fs, CvFileNode* node,
2440 CvAttrList* attributes CV_DEFAULT(NULL));
2450CV_INLINE void* cvReadByName( CvFileStorage* fs,
const CvFileNode* map,
2451 const char* name, CvAttrList* attributes CV_DEFAULT(NULL) )
2453 return cvRead( fs, cvGetFileNodeByName( fs, map, name ), attributes );
2465CVAPI(
void) cvStartReadRawData(
const CvFileStorage* fs,
const CvFileNode* src,
2482 int count,
void*
dst,
const char* dt );
2492CVAPI(
void) cvReadRawData(
const CvFileStorage* fs,
const CvFileNode* src,
2493 void*
dst,
const char* dt );
2508CVAPI(
void) cvWriteFileNode( CvFileStorage* fs,
const char* new_node_name,
2509 const CvFileNode* node,
int embed );
2517CVAPI(
const char*) cvGetFileNodeName(
const CvFileNode* node );
2527CVAPI(
void) cvRegisterType(
const CvTypeInfo* info );
2536CVAPI(
void) cvUnregisterType(
const char* type_name );
2543CVAPI(CvTypeInfo*) cvFirstType(
void);
2551CVAPI(CvTypeInfo*) cvFindType(
const char* type_name );
2561CVAPI(CvTypeInfo*) cvTypeOf(
const void* struct_ptr );
2570CVAPI(
void) cvRelease(
void** struct_ptr );
2579CVAPI(
void*) cvClone(
const void* struct_ptr );
2586CVAPI(
double) cvGetTickFrequency(
void );
2590CVAPI(
int) cvCheckHardwareSupport(
int feature);
2595CVAPI(
int) cvGetNumThreads(
void );
2596CVAPI(
void) cvSetNumThreads(
int threads CV_DEFAULT(0) );
2598CVAPI(
int) cvGetThreadNum(
void );
2604CVAPI(
int) cvGetErrStatus(
void );
2607CVAPI(
void) cvSetErrStatus(
int status );
2609#define CV_ErrModeLeaf 0
2610#define CV_ErrModeParent 1
2611#define CV_ErrModeSilent 2
2614CVAPI(
int) cvGetErrMode(
void );
2617CVAPI(
int) cvSetErrMode(
int mode );
2626CVAPI(
const char*) cvErrorStr(
int status );
2633CVAPI(
int) cvErrorFromIppStatus(
int ipp_status );
2641 void** prev_userdata CV_DEFAULT(NULL) );
2655#define OPENCV_ERROR(status,func,context) \
2656cvError((status),(func),(context),__FILE__,__LINE__)
2658#define OPENCV_ASSERT(expr,func,context) \
2660{OPENCV_ERROR(CV_StsInternal,(func),(context));}}
2662#define OPENCV_CALL( Func ) \
2669#ifdef CV_NO_FUNC_NAMES
2670#define CV_FUNCNAME( Name )
2671#define cvFuncName ""
2673#define CV_FUNCNAME( Name ) \
2674static char cvFuncName[] = Name
2682#define CV_ERROR( Code, Msg ) \
2684 cvError( (Code), cvFuncName, Msg, __FILE__, __LINE__ ); \
2695 if( cvGetErrStatus() < 0 ) \
2696 CV_ERROR( CV_StsBackTrace, "Inner function failed." ); \
2705#define CV_CALL( Func ) \
2713#define CV_ASSERT( Condition ) \
2715 if( !(Condition) ) \
2716 CV_ERROR( CV_StsInternal, "Assertion: " #Condition " failed" ); \
2719#define __CV_BEGIN__ {
2720#define __CV_END__ goto exit; exit: ; }
2721#define __CV_EXIT__ goto exit
2731#include "opencv2/core/utility.hpp"
2743 bool allowND=
true,
int coiMode=0,
2744 AutoBuffer<double>* buf=0);
2746static inline Mat cvarrToMatND(
const CvArr*
arr,
bool copyData=
false,
int coiMode=0)
2748 return cvarrToMat(
arr, copyData,
true, coiMode);
2769template<
typename _Tp>
class SeqIterator;
2771typedef Ptr<CvMemStorage> MemStorage;
2783template<
typename _Tp>
class Seq
2786 typedef SeqIterator<_Tp> iterator;
2787 typedef SeqIterator<_Tp> const_iterator;
2794 Seq(MemStorage&
storage,
int headerSize =
sizeof(
CvSeq));
2796 _Tp& operator [](
int idx);
2798 const _Tp& operator[](
int idx)
const;
2800 SeqIterator<_Tp>
begin()
const;
2802 SeqIterator<_Tp>
end()
const;
2804 size_t size()
const;
2812 size_t elemSize()
const;
2816 void push_back(
const _Tp&
elem);
2818 void push_front(
const _Tp&
elem);
2820 void push_back(
const _Tp* elems,
size_t count);
2822 void push_front(
const _Tp* elems,
size_t count);
2824 void insert(
int idx,
const _Tp&
elem);
2826 void insert(
int idx,
const _Tp* elems,
size_t count);
2835 const _Tp& front()
const;
2839 const _Tp& back()
const;
2850 void pop_front(_Tp* elems,
size_t count);
2852 void pop_back(_Tp* elems,
size_t count);
2866template<
typename _Tp>
class SeqIterator :
public CvSeqReader
2872 SeqIterator(
const Seq<_Tp>&
seq,
bool seekEnd=
false);
2874 void seek(
size_t pos);
2876 size_t tell()
const;
2880 const _Tp& operator *()
const;
2882 SeqIterator& operator ++();
2884 SeqIterator operator ++(
int)
const;
2886 SeqIterator& operator --();
2888 SeqIterator operator --(
int)
const;
2891 SeqIterator& operator +=(
int);
2893 SeqIterator& operator -=(
int);
2908 int count,
int in_front=0 );
2915template<
typename _Tp>
inline Seq<_Tp>::Seq() :
seq(0) {}
2916template<
typename _Tp>
inline Seq<_Tp>::Seq(
const CvSeq* _seq ) :
seq((
CvSeq*)_seq)
2918 CV_Assert(!_seq || _seq->elem_size ==
sizeof(_Tp));
2921template<
typename _Tp>
inline Seq<_Tp>::Seq( MemStorage&
storage,
2925 seq = cvCreateSeq(DataType<_Tp>::type, headerSize,
sizeof(_Tp),
storage);
2928template<
typename _Tp>
inline _Tp& Seq<_Tp>::operator [](
int idx)
2929{
return *(_Tp*)getSeqElem(
seq,
idx); }
2931template<
typename _Tp>
inline const _Tp& Seq<_Tp>::operator [](
int idx)
const
2932{
return *(_Tp*)getSeqElem(
seq,
idx); }
2934template<
typename _Tp>
inline SeqIterator<_Tp> Seq<_Tp>::begin()
const
2935{
return SeqIterator<_Tp>(*
this); }
2937template<
typename _Tp>
inline SeqIterator<_Tp> Seq<_Tp>::end()
const
2938{
return SeqIterator<_Tp>(*
this,
true); }
2940template<
typename _Tp>
inline size_t Seq<_Tp>::size()
const
2941{
return seq ?
seq->total : 0; }
2943template<
typename _Tp>
inline int Seq<_Tp>::type()
const
2946template<
typename _Tp>
inline int Seq<_Tp>::depth()
const
2949template<
typename _Tp>
inline int Seq<_Tp>::channels()
const
2952template<
typename _Tp>
inline size_t Seq<_Tp>::elemSize()
const
2953{
return seq ?
seq->elem_size : 0; }
2955template<
typename _Tp>
inline size_t Seq<_Tp>::index(
const _Tp&
elem)
const
2956{
return cvSeqElemIdx(
seq, &
elem); }
2958template<
typename _Tp>
inline void Seq<_Tp>::push_back(
const _Tp&
elem)
2961template<
typename _Tp>
inline void Seq<_Tp>::push_front(
const _Tp&
elem)
2962{ cvSeqPushFront(
seq, &
elem); }
2964template<
typename _Tp>
inline void Seq<_Tp>::push_back(
const _Tp*
elem,
size_t count)
2967template<
typename _Tp>
inline void Seq<_Tp>::push_front(
const _Tp*
elem,
size_t count)
2970template<
typename _Tp>
inline _Tp& Seq<_Tp>::back()
2971{
return *(_Tp*)getSeqElem(
seq, -1); }
2973template<
typename _Tp>
inline const _Tp& Seq<_Tp>::back()
const
2974{
return *(
const _Tp*)getSeqElem(
seq, -1); }
2976template<
typename _Tp>
inline _Tp& Seq<_Tp>::front()
2977{
return *(_Tp*)getSeqElem(
seq, 0); }
2979template<
typename _Tp>
inline const _Tp& Seq<_Tp>::front()
const
2980{
return *(
const _Tp*)getSeqElem(
seq, 0); }
2982template<
typename _Tp>
inline bool Seq<_Tp>::empty()
const
2983{
return !
seq ||
seq->total == 0; }
2985template<
typename _Tp>
inline void Seq<_Tp>::clear()
2986{
if(
seq) clearSeq(
seq); }
2988template<
typename _Tp>
inline void Seq<_Tp>::pop_back()
2991template<
typename _Tp>
inline void Seq<_Tp>::pop_front()
2992{ seqPopFront(
seq); }
2994template<
typename _Tp>
inline void Seq<_Tp>::pop_back(_Tp*
elem,
size_t count)
2997template<
typename _Tp>
inline void Seq<_Tp>::pop_front(_Tp*
elem,
size_t count)
3000template<
typename _Tp>
inline void Seq<_Tp>::insert(
int idx,
const _Tp&
elem)
3003template<
typename _Tp>
inline void Seq<_Tp>::insert(
int idx,
const _Tp* elems,
size_t count)
3006 seqInsertSlice(
seq,
idx, &m);
3009template<
typename _Tp>
inline void Seq<_Tp>::remove(
int idx)
3012template<
typename _Tp>
inline void Seq<_Tp>::remove(
const Range&
r)
3030template<
typename _Tp>
inline SeqIterator<_Tp>::SeqIterator()
3031{
memset(
this, 0,
sizeof(*
this)); }
3033template<
typename _Tp>
inline SeqIterator<_Tp>::SeqIterator(
const Seq<_Tp>& _seq,
bool seekEnd)
3035 cvStartReadSeq(_seq.seq,
this);
3036 index = seekEnd ? _seq.seq->total : 0;
3039template<
typename _Tp>
inline void SeqIterator<_Tp>::seek(
size_t pos)
3041 cvSetSeqReaderPos(
this, (
int)
pos,
false);
3045template<
typename _Tp>
inline size_t SeqIterator<_Tp>::tell()
const
3048template<
typename _Tp>
inline _Tp& SeqIterator<_Tp>::operator *()
3049{
return *(_Tp*)ptr; }
3051template<
typename _Tp>
inline const _Tp& SeqIterator<_Tp>::operator *()
const
3052{
return *(
const _Tp*)ptr; }
3054template<
typename _Tp>
inline SeqIterator<_Tp>& SeqIterator<_Tp>::operator ++()
3062template<
typename _Tp>
inline SeqIterator<_Tp> SeqIterator<_Tp>::operator ++(
int)
const
3064 SeqIterator<_Tp> it = *
this;
3069template<
typename _Tp>
inline SeqIterator<_Tp>& SeqIterator<_Tp>::operator --()
3077template<
typename _Tp>
inline SeqIterator<_Tp> SeqIterator<_Tp>::operator --(
int)
const
3079 SeqIterator<_Tp> it = *
this;
3084template<
typename _Tp>
inline SeqIterator<_Tp>& SeqIterator<_Tp>::operator +=(
int delta)
3086 cvSetSeqReaderPos(
this,
delta, 1);
3088 int n =
seq->total*2;
3096template<
typename _Tp>
inline SeqIterator<_Tp>& SeqIterator<_Tp>::operator -=(
int delta)
3098 return (*
this += -
delta);
3101template<
typename _Tp>
inline ptrdiff_t operator - (
const SeqIterator<_Tp>& a,
3102 const SeqIterator<_Tp>& b)
3104 ptrdiff_t
delta = a.index - b.index, n = a.seq->total;
3110template<
typename _Tp>
inline bool operator == (
const SeqIterator<_Tp>& a,
3111 const SeqIterator<_Tp>& b)
3113 return a.seq == b.seq && a.index == b.index;
3116template<
typename _Tp>
inline bool operator != (
const SeqIterator<_Tp>& a,
3117 const SeqIterator<_Tp>& b)
void CV_EXPORTS_W copyTo(InputArray src, OutputArray dst, InputArray mask)
This is an overloaded member function, provided for convenience (python) Copies the matrix to another...
const _OutputArray & OutputArray
Definition mat.hpp:444
CV__DEBUG_NS_END typedef const _InputArray & InputArray
Definition mat.hpp:442
CvMemStorage CvSeq CvCmpFunc is_equal
Definition core_c.h:1724
int src_count
Definition core_c.h:999
const CvArr * lower
Definition core_c.h:1139
void void * frame
Definition core_c.h:1913
CvGraphVtx CvGraphVtx * end_vtx
Definition core_c.h:1804
#define CV_GRAPH_ALL_ITEMS
Definition core_c.h:1852
int rows
Definition core_c.h:257
CvMat int int end_col
Definition core_c.h:402
int CvArr int dst_count
Definition core_c.h:1000
CvMat * roots
Definition core_c.h:1263
double int default_max_iters
Definition core_c.h:1046
int sizeof_header
Definition core_c.h:836
#define cvFree(ptr)
Definition core_c.h:92
CvMat * roots2
Definition core_c.h:1266
int int end_idx
Definition core_c.h:1799
#define CV_REDUCE_SUM
Definition core_c.h:1492
CvCmpFunc func
Definition core_c.h:1712
CvArr int order
Definition core_c.h:1311
CvMemStorage CvSeq ** labels
Definition core_c.h:1724
CV_INLINE CvMat cvMat(int rows, int cols, int type, void *data CV_DEFAULT(NULL))
Definition types_c.h:537
int int int edge_size
Definition core_c.h:1781
CvGraphVtx * vtx
Definition core_c.h:1791
size_t size_t CvMemStorage * storage
Definition core_c.h:1587
int CvScalar value
Definition core_c.h:720
uint64 CvRNG
Definition types_c.h:214
int int void int CvSeq CvSeqBlock * block
Definition core_c.h:1690
int int idx1
Definition core_c.h:654
int CvArr int int int * new_sizes
Definition core_c.h:837
int int void int total
Definition core_c.h:1689
const CvArr const CvArr const CvArr CvArr int flags
Definition core_c.h:1342
#define CV_AUTOSTEP
Definition core_c.h:223
int int channels
Definition core_c.h:100
const CvArr CvArr int cmp_op
Definition core_c.h:1157
CvSeqReader * reader
Definition core_c.h:1668
const void CvCmpFunc int is_sorted
Definition core_c.h:1716
double * min_val
Definition core_c.h:1450
CvMat int int end_row
Definition core_c.h:375
const CvArr const CvArr const CvArr * src3
Definition core_c.h:994
CvArr int CvScalar CvScalar param2
Definition core_c.h:1248
double double end
Definition core_c.h:1381
CvMat * header
Definition core_c.h:782
int CvArr int const int int pair_count
Definition core_c.h:1001
CvMat * submat
Definition core_c.h:360
int(CV_CDECL * CvCmpFunc)(const void *a, const void *b, void *userdata)
Definition core_c.h:1709
CvArr CvArr CvArr * eigenvects
Definition core_c.h:1420
const void * elem
Definition core_c.h:1715
CvGraphVtx * start_vtx
Definition core_c.h:1804
CvArr CvArr * evals
Definition core_c.h:1368
Cv_iplAllocateImageData allocate_data
Definition core_c.h:1963
CV_INLINE void cvSetRemoveByPtr(CvSet *set_header, void *elem)
Definition core_c.h:1755
CV_INLINE void cvSubS(const CvArr *src, CvScalar value, CvArr *dst, const CvArr *mask CV_DEFAULT(NULL))
Definition core_c.h:1065
CvArr * dst
Definition core_c.h:875
int cols
Definition core_c.h:221
const void int max_level
Definition core_c.h:1906
IplROI *(CV_STDCALL * Cv_iplCreateROI)(int, int, int, int, int)
Definition core_c.h:1943
CV_INLINE CvSetElem * cvGetSetElem(const CvSet *set_header, int idx)
Definition core_c.h:1770
double start
Definition core_c.h:1381
CV_INLINE int cvIncRefData(CvArr *arr)
Increments array data reference counter.
Definition core_c.h:327
CvArr * W
Definition core_c.h:1335
int int int idx2
Definition core_c.h:656
CvArr int CvScalar param1
Definition core_c.h:1248
const CvArr const CvArr * upper
Definition core_c.h:1140
int delta_elems
Definition core_c.h:1591
double const CvArr double beta
Definition core_c.h:1094
CvMat int start_row
Definition core_c.h:375
size_t header_size
Definition core_c.h:1586
CvSlice slice
Definition core_c.h:1693
CvArr int dist_type
Definition core_c.h:1247
CvRect rect
Definition core_c.h:193
CV_INLINE CvMat * cvGetCol(const CvArr *arr, CvMat *submat, int col)
Definition core_c.h:409
#define CV_LU
Definition core_c.h:1344
CvArr CvArr * eigenvals
Definition core_c.h:1420
Cv_iplAllocateImageData Cv_iplDeallocate deallocate
Definition core_c.h:1964
const char ** description
Definition core_c.h:2629
CvArr ** arrs
Definition core_c.h:588
void(CV_STDCALL * Cv_iplDeallocate)(IplImage *, int)
Definition core_c.h:1942
const int * idx
Definition core_c.h:668
int CvArr CvArr * avg
Definition core_c.h:1414
int const CvArr * from_arr
Definition core_c.h:1706
int int vtx_size
Definition core_c.h:1781
void * parent
Definition core_c.h:1913
IplImage *(CV_STDCALL * Cv_iplCloneImage)(const IplImage *)
Definition core_c.h:1944
const char const char const char int line
Definition core_c.h:2623
CV_INLINE void cvReleaseMatND(CvMatND **mat)
Deallocates a multi-dimensional array.
Definition core_c.h:478
CvArr const CvMat * mat
Definition core_c.h:1308
CvMemStoragePos * pos
Definition core_c.h:1573
Cv_iplAllocateImageData Cv_iplDeallocate Cv_iplCreateROI Cv_iplCloneImage clone_image
Definition core_c.h:1966
CV_INLINE void cvDecRefData(CvArr *arr)
Decrements an array data reference counter.
Definition core_c.h:301
CvScalar CvScalar * std_dev
Definition core_c.h:1446
int(CV_CDECL * CvErrorCallback)(int status, const char *func_name, const char *err_msg, const char *file_name, int line, void *userdata)
Definition core_c.h:2635
CvScalar scale
Definition core_c.h:1088
CvSparseMatIterator * mat_iterator
Definition core_c.h:515
const void * first
Definition core_c.h:1906
int index
Definition core_c.h:634
const CvArr const CvArr * src2
Definition core_c.h:994
int coi
Definition core_c.h:172
const CvArr * angle
Definition core_c.h:1194
const void * element
Definition core_c.h:1642
CvArr const CvArr CvMatND * stubs
Definition core_c.h:589
CV_INLINE CvSparseNode * cvGetNextSparseNode(CvSparseMatIterator *mat_iterator)
Returns the next sparse matrix element.
Definition core_c.h:545
IplImage *(CV_STDCALL * Cv_iplCreateImageHeader)(int, int, int, char *, char *, int, int, int, int, int, IplROI *, IplImage *, void *, IplTileInfo *)
Definition core_c.h:1939
int vtx_idx
Definition core_c.h:1826
int start_idx
Definition core_c.h:1799
int CvScalar * scalar
Definition core_c.h:430
CvArr * dst0
Definition core_c.h:988
int before_index
Definition core_c.h:1622
CvSize size
Definition core_c.h:112
Cv_iplAllocateImageData Cv_iplDeallocate Cv_iplCreateROI create_roi
Definition core_c.h:1965
CV_INLINE CvSlice cvSlice(int start, int end)
Definition types_c.h:1344
int direction
Definition core_c.h:1727
const CvArr * src1
Definition core_c.h:993
IplImage * image_header
Definition core_c.h:796
struct _IplTileInfo IplTileInfo
Definition types_c.h:366
int int type
Definition core_c.h:221
CvRNG * rng
Definition core_c.h:1250
#define CV_L2
Definition core_c.h:1461
double double * max_val
Definition core_c.h:1450
int count
Definition core_c.h:1413
int cluster_count
Definition core_c.h:1926
CvMemStorage CvSeq CvCmpFunc void * userdata
Definition core_c.h:1724
void(CV_STDCALL * Cv_iplAllocateImageData)(IplImage *, int, int)
Definition core_c.h:1941
CV_INLINE CvScalar cvRealScalar(double val0)
Definition types_c.h:1440
CvArr * evects
Definition core_c.h:1368
CV_INLINE CvMat * cvGetRow(const CvArr *arr, CvMat *submat, int row)
Definition core_c.h:383
#define CV_IS_MATND(mat)
Definition types_c.h:717
const CvSeq * seq
Definition core_c.h:1548
#define CV_PREV_SEQ_ELEM(elem_size, reader)
Definition types_c.h:1915
const CvArr const CvArr const CvArr CvArr * X
Definition core_c.h:1342
CV_INLINE CvSeq * cvCloneSeq(const CvSeq *seq, CvMemStorage *storage CV_DEFAULT(NULL))
Definition core_c.h:1697
CvArr double power
Definition core_c.h:1199
const CvArr const CvArr const CvArr * B
Definition core_c.h:1341
const char const char * err_msg
Definition core_c.h:2623
const CvArr * vec2
Definition core_c.h:1429
double default_eps
Definition core_c.h:1045
void int step
Definition core_c.h:905
const CvArr * U
Definition core_c.h:1340
int CvArr int int new_dims
Definition core_c.h:837
CvMat int start_col
Definition core_c.h:402
CvSeqWriter * writer
Definition core_c.h:1646
CvArr const CvArr * mask
Definition core_c.h:589
#define CV_MAX_ARR
Definition core_c.h:566
CvArr * arr
Definition core_c.h:1247
CvArr const CvArr * lut
Definition core_c.h:1893
#define CV_NEXT_SEQ_ELEM(elem_size, reader)
Definition types_c.h:1905
void CvArr
This is the "metatype" used only as a function parameter.
Definition types_c.h:133
CvArr CvArr CvArr CvArr * dst3
Definition core_c.h:989
CvArr CvArr * dst1
Definition core_c.h:988
int depth
Definition core_c.h:100
const char const char ** filename
Definition core_c.h:2630
void * data
Definition core_c.h:427
CvArr * mean
Definition core_c.h:1419
const CvArr CvArr * x
Definition core_c.h:1195
double const CvArr double double gamma
Definition core_c.h:1095
double alpha
Definition core_c.h:1093
CvArr CvArr CvArr * dst2
Definition core_c.h:989
int CvArr CvTermCriteria termcrit
Definition core_c.h:1927
int CvArr int const int * from_to
Definition core_c.h:1001
const CvArr const CvArr * V
Definition core_c.h:1341
int CvArr * cov_mat
Definition core_c.h:1414
#define CV_IS_MAT(mat)
Definition types_c.h:507
const CvArr const CvArr CvArr * result
Definition core_c.h:1423
const char * func_name
Definition core_c.h:2622
const CvArr CvArr * magnitude
Definition core_c.h:1188
const void * elements
Definition core_c.h:1613
CVAPI(void) cvFree_(void *ptr)
Deallocates an image header.
size_t size_t elem_size
Definition core_c.h:1587
CV_INLINE CvSetElem * cvSetNew(CvSet *set_header)
Definition core_c.h:1740
const char const char const char * file_name
Definition core_c.h:2623
int dims
Definition core_c.h:464
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:1401
#define CV_SET_ELEM_IDX_MASK
Definition types_c.h:1594
int CvArr int new_cn
Definition core_c.h:837
int idx0
Definition core_c.h:652
CvArr const CvArr CvMatND CvNArrayIterator * array_iterator
Definition core_c.h:590
#define CV_IS_SET_ELEM(ptr)
Definition types_c.h:1598
#define CV_WHOLE_SEQ
Definition types_c.h:1318
const void CvCmpFunc int int * elem_idx
Definition core_c.h:1716
#define CV_SET_ELEM_FREE_FLAG
Definition types_c.h:1595
CvArr const CvMat * transmat
Definition core_c.h:1302
const CvArr * y
Definition core_c.h:1187
const int * sizes
Definition core_c.h:440
signed char schar
Definition interface.h:48
#define CV_MAT_DEPTH(flags)
Definition interface.h:83
unsigned char uchar
Definition interface.h:51
int64_t int64
Definition interface.h:61
#define CV_EXPORTS
Definition cvdef.h:435
CV_INLINE int cvRound(double value)
Rounds floating-point number to the nearest integer.
Definition fast_math.hpp:200
#define CV_STDCALL
Definition cvdef.h:209
#define CV_MAT_CN(flags)
Definition cvdef.h:495
#define CV_CDECL
Definition cvdef.h:208
#define CV_MAX_DIM
Definition cvdef.h:493
#define CV_MAT_TYPE(flags)
Definition cvdef.h:497
#define CV_Assert(expr)
Checks a condition at runtime and throws exception if it fails.
Definition base.hpp:342
#define CV_INLINE
Definition cvdef.h:218
CvArr int block_size
Definition imgproc_c.h:877
CvRect r
Definition imgproc_c.h:984
CvSize int int int CvPoint int delta
Definition imgproc_c.h:1168
CvArr CvSize range
Definition imgproc_c.h:781
int CvMemStorage int double eps
Definition imgproc_c.h:493
const CvArr CvArr int method
Definition imgproc_c.h:384
CvPoint2D32f int CvSize CvSize CvTermCriteria criteria
Definition imgproc_c.h:900
const IplImage * image
Definition videoio_c.h:131
"black box" representation of the file storage associated with a file on disk.
Definition calib3d.hpp:441
Definition types_c.h:1635
CvGraph * graph
Definition core_c.h:1869
int index
Definition core_c.h:1871
CvGraphVtx * dst
Definition core_c.h:1866
int mask
Definition core_c.h:1872
CvGraphEdge * edge
Definition core_c.h:1867
CvSeq * stack
Definition core_c.h:1870
CvGraphVtx * vtx
Definition core_c.h:1865
Definition types_c.h:1641
Definition types_c.h:1662
uchar * ptr
Definition types_c.h:465
int * refcount
Definition types_c.h:460
Definition types_c.h:1498
Definition types_c.h:1482
int stack[CV_MAX_DIM]
Definition core_c.h:575
CvSize size
Definition core_c.h:573
int count
Definition core_c.h:571
int dims
Definition core_c.h:572
CvMatND * hdr[CV_MAX_ARR]
Definition core_c.h:576
uchar * ptr[CV_MAX_ARR]
Definition core_c.h:574
Definition types_c.h:1367
double val[4]
Definition types_c.h:1368
Definition types_c.h:1508
Definition types_c.h:1861
Definition types_c.h:1836
Definition types_c.h:1558
Definition types_c.h:1577
Definition types_c.h:1588
Definition types_c.h:1158
Definition types_c.h:1321
CvSparseNode * node
Definition types_c.h:773
int curidx
Definition types_c.h:774
CvSparseMat * mat
Definition types_c.h:772
int hashsize
Definition types_c.h:739
void ** hashtable
Definition types_c.h:738
struct CvSparseNode * next
Definition types_c.h:766
int level
Definition core_c.h:1900
int max_level
Definition core_c.h:1901
const void * node
Definition core_c.h:1899