Classes | |
struct | CvNArrayIterator |
struct | CvGraphScanner |
struct | CvTreeNodeIterator |
struct | _IplImage |
struct | _IplROI |
struct | _IplConvKernel |
struct | _IplConvKernelFP |
struct | CvMat |
struct | CvMatND |
struct | CvSparseMat |
struct | CvSparseNode |
struct | CvSparseMatIterator |
struct | CvHistogram |
struct | CvRect |
struct | CvTermCriteria |
struct | CvPoint |
struct | CvPoint2D32f |
struct | CvPoint3D32f |
struct | CvPoint2D64f |
struct | CvPoint3D64f |
struct | CvSize |
struct | CvSize2D32f |
struct | CvBox2D |
struct | CvLineIterator |
struct | CvSlice |
struct | CvScalar |
struct | CvMemBlock |
struct | CvMemStorage |
struct | CvMemStoragePos |
struct | CvSeqBlock |
struct | CvSeq |
struct | CvSetElem |
struct | CvSet |
struct | CvGraphEdge |
struct | CvGraphVtx |
struct | CvGraphVtx2D |
struct | CvGraph |
struct | CvChain |
struct | CvContour |
struct | CvSeqWriter |
struct | CvSeqReader |
Typedefs | |
typedef struct CvNArrayIterator | CvNArrayIterator |
typedef int(CV_CDECL * | CvCmpFunc) (const void *a, const void *b, void *userdata) |
typedef struct CvGraphScanner | CvGraphScanner |
typedef struct CvTreeNodeIterator | CvTreeNodeIterator |
typedef IplImage *(CV_STDCALL * | Cv_iplCreateImageHeader) (int, int, int, char *, char *, int, int, int, int, int, IplROI *, IplImage *, void *, IplTileInfo *) |
typedef void(CV_STDCALL * | Cv_iplAllocateImageData) (IplImage *, int, int) |
typedef void(CV_STDCALL * | Cv_iplDeallocate) (IplImage *, int) |
typedef IplROI *(CV_STDCALL * | Cv_iplCreateROI) (int, int, int, int, int) |
typedef IplImage *(CV_STDCALL * | Cv_iplCloneImage) (const IplImage *) |
typedef int(CV_CDECL * | CvErrorCallback) (int status, const char *func_name, const char *err_msg, const char *file_name, int line, void *userdata) |
typedef void | CvArr |
This is the "metatype" used only as a function parameter. More... | |
typedef int | CVStatus |
typedef uint64 | CvRNG |
typedef struct _IplImage | IplImage |
typedef struct _IplTileInfo | IplTileInfo |
typedef struct _IplROI | IplROI |
typedef struct _IplConvKernel | IplConvKernel |
typedef struct _IplConvKernelFP | IplConvKernelFP |
typedef struct CvMat | CvMat |
typedef struct CvMatND | CvMatND |
typedef struct CvSparseMat | CvSparseMat |
typedef struct CvSparseNode | CvSparseNode |
typedef struct CvSparseMatIterator | CvSparseMatIterator |
typedef int | CvHistType |
typedef struct CvHistogram | CvHistogram |
typedef struct CvRect | CvRect |
typedef struct CvTermCriteria | CvTermCriteria |
typedef struct CvPoint | CvPoint |
typedef struct CvPoint2D32f | CvPoint2D32f |
typedef struct CvPoint3D32f | CvPoint3D32f |
typedef struct CvPoint2D64f | CvPoint2D64f |
typedef struct CvPoint3D64f | CvPoint3D64f |
typedef struct CvSize | CvSize |
typedef struct CvSize2D32f | CvSize2D32f |
typedef struct CvBox2D | CvBox2D |
typedef struct CvLineIterator | CvLineIterator |
typedef struct CvSlice | CvSlice |
typedef struct CvScalar | CvScalar |
typedef struct CvMemBlock | CvMemBlock |
typedef struct CvMemStorage | CvMemStorage |
typedef struct CvMemStoragePos | CvMemStoragePos |
typedef struct CvSeqBlock | CvSeqBlock |
typedef struct CvSeq | CvSeq |
typedef struct CvSetElem | CvSetElem |
typedef struct CvSet | CvSet |
typedef struct CvChain | CvChain |
typedef struct CvContour | CvContour |
typedef CvContour | CvPoint2DSeq |
typedef struct CvSeqWriter | CvSeqWriter |
typedef struct CvSeqReader | CvSeqReader |
Functions | |
CVAPI (CvArr *) cvReshapeMatND(const CvArr *arr | |
Changes the shape of a multi-dimensional array without copying the data. More... | |
CVAPI (void) cvReleaseImageHeader(IplImage **image) | |
Deallocates an image header. More... | |
CVAPI (IplImage *) cvCreateImageHeader(CvSize size | |
Creates an image header but does not allocate the image data. More... | |
CvSize int int int origin | CV_DEFAULT (0) |
CvSize int int int origin int align | CV_DEFAULT (4)) |
CVAPI (int) cvGetImageCOI(const IplImage *image) | |
Returns the index of the channel of interest. More... | |
CVAPI (CvRect) cvGetImageROI(const IplImage *image) | |
Returns the image ROI. More... | |
CVAPI (CvMat *) cvCreateMatHeader(int rows | |
Creates a matrix header but does not allocate the matrix data. More... | |
int int int void *data | CV_DEFAULT (NULL) |
int int int void *data int step | CV_DEFAULT (CV_AUTOSTEP)) |
CV_INLINE void | cvDecRefData (CvArr *arr) |
Decrements an array data reference counter. More... | |
CV_INLINE int | cvIncRefData (CvArr *arr) |
Increments array data reference counter. More... | |
CvMat int int int delta_row | CV_DEFAULT (1)) |
CV_INLINE CvMat * | cvGetRow (const CvArr *arr, CvMat *submat, int row) |
CV_INLINE CvMat * | cvGetCol (const CvArr *arr, CvMat *submat, int col) |
CVAPI (CvMatND *) cvCreateMatNDHeader(int dims | |
Creates a new matrix header but does not allocate the matrix data. More... | |
CV_INLINE void | cvReleaseMatND (CvMatND **mat) |
Deallocates a multi-dimensional array. More... | |
CVAPI (CvSparseMat *) cvCreateSparseMat(int dims | |
Creates sparse array. More... | |
CVAPI (CvSparseNode *) cvInitSparseMatIterator(const CvSparseMat *mat | |
Initializes sparse array elements iterator. More... | |
CV_INLINE CvSparseNode * | cvGetNextSparseNode (CvSparseMatIterator *mat_iterator) |
Returns the next sparse matrix element. More... | |
CVAPI (uchar *) cvPtr1D(const CvArr *arr | |
Return pointer to a particular array element. More... | |
CVAPI (CvScalar) cvGet1D(const CvArr *arr | |
Return a specific array element. More... | |
CVAPI (double) cvGetReal1D(const CvArr *arr | |
Return a specific element of single-channel 1D, 2D, 3D or nD array. More... | |
CVAPI (CvSize) cvGetSize(const CvArr *arr) | |
Returns size of matrix or image ROI. More... | |
CVAPI (CvTermCriteria) cvCheckTermCriteria(CvTermCriteria criteria | |
CV_INLINE void | cvSubS (const CvArr *src, CvScalar value, CvArr *dst, const CvArr *mask CV_DEFAULT(NULL)) |
CVAPI (float) cvFastArctan(float y | |
CvRNG double iter_factor | CV_DEFAULT (1.)) |
CvMat int maxiter | CV_DEFAULT (20) |
CvMat int maxiter int fig | CV_DEFAULT (100)) |
CvArr int method | CV_DEFAULT (CV_LU)) |
CvArr CvArr double eps int lowindex | CV_DEFAULT (-1) |
CvScalar value | CV_DEFAULT (cvRealScalar(1))) |
const CvArr *arr2 int norm_type | CV_DEFAULT (CV_L2) |
CvArr double a double b | CV_DEFAULT (0.) |
CvArr int dim int op | CV_DEFAULT (CV_REDUCE_SUM)) |
CVAPI (CvMemStorage *) cvCreateMemStorage(int block_size CV_DEFAULT(0)) | |
CVAPI (CvSeq *) cvCreateSeq(int seq_flags | |
Releases contour scanner and returns pointer to the first outer contour. More... | |
CVAPI (schar *) cvSeqPush(CvSeq *seq | |
void CvSlice slice | CV_DEFAULT (CV_WHOLE_SEQ)) |
CV_INLINE CvSeq * | cvCloneSeq (const CvSeq *seq, CvMemStorage *storage CV_DEFAULT(NULL)) |
CVAPI (CvSet *) cvCreateSet(int set_flags | |
CV_INLINE CvSetElem * | cvSetNew (CvSet *set_header) |
CV_INLINE void | cvSetRemoveByPtr (CvSet *set_header, void *elem) |
CV_INLINE CvSetElem * | cvGetSetElem (const CvSet *set_header, int idx) |
CVAPI (CvGraph *) cvCreateGraph(int graph_flags | |
CVAPI (CvGraphEdge *) cvFindGraphEdge(const CvGraph *graph | |
CVAPI (CvGraphScanner *) cvCreateGraphScanner(CvGraph *graph | |
CvGraphVtx *vtx int mask | CV_DEFAULT (CV_GRAPH_ALL_ITEMS)) |
CVAPI (int64) cvGetTickCount(void) | |
CVAPI (const char *) cvErrorStr(int status) | |
CVAPI (CvErrorCallback) cvRedirectError(CvErrorCallback error_handler | |
CV_INLINE CvRNG | cvRNG (int64 seed CV_DEFAULT(-1)) |
Initializes a random number generator state. More... | |
CV_INLINE unsigned | cvRandInt (CvRNG *rng) |
Returns a 32-bit unsigned integer and updates RNG. More... | |
CV_INLINE double | cvRandReal (CvRNG *rng) |
Returns a floating-point random number and updates RNG. More... | |
CV_INLINE IplImage | cvIplImage () |
CV_INLINE CvMat | cvMat (int rows, int cols, int type, void *data CV_DEFAULT(NULL)) |
CV_INLINE double | cvmGet (const CvMat *mat, int row, int col) |
Returns the particular element of single-channel floating-point matrix. More... | |
CV_INLINE void | cvmSet (CvMat *mat, int row, int col, double value) |
Sets a specific element of a single-channel floating-point matrix. More... | |
CV_INLINE int | cvIplDepth (int type) |
CV_INLINE CvMatND | cvMatND () |
CV_INLINE CvRect | cvRect (int x, int y, int width, int height) |
CV_INLINE IplROI | cvRectToROI (CvRect rect, int coi) |
CV_INLINE CvRect | cvROIToRect (IplROI roi) |
CV_INLINE CvTermCriteria | cvTermCriteria (int type, int max_iter, double epsilon) |
CV_INLINE CvPoint | cvPoint (int x, int y) |
CV_INLINE CvPoint2D32f | cvPoint2D32f (double x, double y) |
CV_INLINE CvPoint2D32f | cvPointTo32f (CvPoint point) |
CV_INLINE CvPoint | cvPointFrom32f (CvPoint2D32f point) |
CV_INLINE CvPoint3D32f | cvPoint3D32f (double x, double y, double z) |
CV_INLINE CvPoint2D64f | cvPoint2D64f (double x, double y) |
CV_INLINE CvPoint3D64f | cvPoint3D64f (double x, double y, double z) |
CV_INLINE CvSize | cvSize (int width, int height) |
CV_INLINE CvSize2D32f | cvSize2D32f (double width, double height) |
CV_INLINE CvSlice | cvSlice (int start, int end) |
CV_INLINE CvScalar | cvScalar (double val0, double val1 CV_DEFAULT(0), double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0)) |
CV_INLINE CvScalar | cvRealScalar (double val0) |
CV_INLINE CvScalar | cvScalarAll (double val0123) |
Graph | |
We represent a graph as a set of vertices. Vertices contain their adjacency lists (more exactly, pointers to first incoming or outcoming edge (or 0 if isolated vertex)). Edges are stored in another set. There is a singly-linked list of incoming/outcoming edges for each vertex. Each edge consists of:
| |
typedef struct CvGraphEdge | CvGraphEdge |
typedef struct CvGraphVtx | CvGraphVtx |
typedef struct CvGraphVtx2D | CvGraphVtx2D |
typedef struct CvGraph | CvGraph |
#define | CV_GRAPH_EDGE_FIELDS() |
#define | CV_GRAPH_VERTEX_FIELDS() |
#define | CV_GRAPH_FIELDS() |
#define | CV_TYPE_NAME_GRAPH "opencv-graph" |
Flags for cvCalcCovarMatrix | |
| |
#define | CV_COVAR_SCRAMBLED 0 |
#define | CV_COVAR_NORMAL 1 |
#define | CV_COVAR_USE_AVG 2 |
#define | CV_COVAR_SCALE 4 |
#define | CV_COVAR_ROWS 8 |
#define | CV_COVAR_COLS 16 |
Flags for cvNorm and cvNormalize | |
#define | CV_C 1 |
#define | CV_L1 2 |
#define | CV_L2 4 |
#define | CV_NORM_MASK 7 |
#define | CV_RELATIVE 8 |
#define | CV_DIFF 16 |
#define | CV_MINMAX 32 |
#define | CV_DIFF_C (CV_DIFF | CV_C) |
#define | CV_DIFF_L1 (CV_DIFF | CV_L1) |
#define | CV_DIFF_L2 (CV_DIFF | CV_L2) |
#define | CV_RELATIVE_C (CV_RELATIVE | CV_C) |
#define | CV_RELATIVE_L1 (CV_RELATIVE | CV_L1) |
#define | CV_RELATIVE_L2 (CV_RELATIVE | CV_L2) |
Flags for cvReduce | |
#define | CV_REDUCE_SUM 0 |
#define | CV_REDUCE_AVG 1 |
#define | CV_REDUCE_MAX 2 |
#define | CV_REDUCE_MIN 3 |
Flags for cvDFT, cvDCT and cvMulSpectrums | |
#define | CV_DXT_FORWARD 0 |
#define | CV_DXT_INVERSE 1 |
#define | CV_DXT_SCALE 2 |
#define | CV_DXT_INV_SCALE (CV_DXT_INVERSE + CV_DXT_SCALE) |
#define | CV_DXT_INVERSE_SCALE CV_DXT_INV_SCALE |
#define | CV_DXT_ROWS 4 |
#define | CV_DXT_MUL_CONJ 8 |
#define __CV_BEGIN__ { |
#define __CV_END__ goto exit; exit: ; } |
#define __CV_EXIT__ goto exit |
#define CV_ARE_CNS_EQ | ( | mat1, | |
mat2 | |||
) | ((((mat1)->type ^ (mat2)->type) & CV_MAT_CN_MASK) == 0) |
#define CV_ARE_DEPTHS_EQ | ( | mat1, | |
mat2 | |||
) | ((((mat1)->type ^ (mat2)->type) & CV_MAT_DEPTH_MASK) == 0) |
#define CV_ARE_SIZES_EQ | ( | mat1, | |
mat2 | |||
) | ((mat1)->rows == (mat2)->rows && (mat1)->cols == (mat2)->cols) |
#define CV_ARE_TYPES_EQ | ( | mat1, | |
mat2 | |||
) | ((((mat1)->type ^ (mat2)->type) & CV_MAT_TYPE_MASK) == 0) |
#define CV_ASSERT | ( | Condition | ) |
Runtime assertion macro
#define CV_AUTO_STEP 0x7fffffff |
#define CV_AUTOSTEP 0x7fffffff |
#define CV_BACK 0 |
#define CV_C 1 |
#define CV_CALL | ( | Func | ) |
CV_CALL macro calls CV (or IPL) function, checks error status and signals a error if the function failed. Useful in "parent node" error processing mode
#define CV_CHECK | ( | ) |
CV_CHECK macro checks error status after CV (or IPL) function call. If error detected, control will be transferred to the exit label.
#define CV_CHECK_QUIET 2 |
#define CV_CHECK_RANGE 1 |
#define CV_CHOLESKY 3 |
#define CV_CMP_EQ 0 |
#define CV_CMP_GE 2 |
#define CV_CMP_GT 1 |
#define CV_CMP_LE 4 |
#define CV_CMP_LT 3 |
#define CV_CMP_NE 5 |
#define CV_COVAR_COLS 16 |
flag for cvCalcCovarMatrix, all the input vectors are stored in a single matrix, as its columns
#define CV_COVAR_NORMAL 1 |
flag for cvCalcCovarMatrix, [v1-avg, v2-avg,...] * transpose([v1-avg,v2-avg,...])
#define CV_COVAR_ROWS 8 |
flag for cvCalcCovarMatrix, all the input vectors are stored in a single matrix, as its rows
#define CV_COVAR_SCALE 4 |
flag for cvCalcCovarMatrix, scale the covariance matrix coefficients by number of the vectors
#define CV_COVAR_SCRAMBLED 0 |
flag for cvCalcCovarMatrix, transpose([v1-avg, v2-avg,...]) * [v1-avg,v2-avg,...]
#define CV_COVAR_USE_AVG 2 |
flag for cvCalcCovarMatrix, do not calc average (i.e. mean vector) - use the input vector instead (useful for calculating covariance matrix by parts)
#define CV_DIFF 16 |
#define CV_DXT_FORWARD 0 |
#define CV_DXT_INV_SCALE (CV_DXT_INVERSE + CV_DXT_SCALE) |
#define CV_DXT_INVERSE 1 |
#define CV_DXT_INVERSE_SCALE CV_DXT_INV_SCALE |
#define CV_DXT_MUL_CONJ 8 |
conjugate the second argument of cvMulSpectrums
#define CV_DXT_ROWS 4 |
transform each row individually
#define CV_DXT_SCALE 2 |
divide result by size of array
#define CV_ErrModeLeaf 0 /* Print error and exit program */ |
#define CV_ErrModeParent 1 /* Print error and continue */ |
#define CV_ErrModeSilent 2 /* Don't print and continue */ |
#define CV_ERROR | ( | Code, | |
Msg | |||
) |
CV_ERROR macro unconditionally raises error with passed code and message. After raising error, control will be transferred to the exit label.
#define CV_FRONT 1 |
#define CV_FUNCNAME | ( | Name | ) | static char cvFuncName[] = Name |
CV_FUNCNAME macro defines icvFuncName constant which is used by CV_ERROR macro
#define CV_GEMM_A_T 1 |
#define CV_GEMM_B_T 2 |
#define CV_GEMM_C_T 4 |
#define CV_GET_SEQ_ELEM | ( | elem_type, | |
seq, | |||
index | |||
) | CV_SEQ_ELEM( (seq), elem_type, (index) ) |
#define CV_GRAPH CV_SEQ_KIND_GRAPH |
#define CV_GRAPH_ALL_ITEMS -1 |
#define CV_GRAPH_ANY_EDGE 30 |
#define CV_GRAPH_BACK_EDGE 4 |
#define CV_GRAPH_BACKTRACKING 64 |
#define CV_GRAPH_CROSS_EDGE 16 |
#define CV_GRAPH_EDGE_FIELDS | ( | ) |
#define CV_GRAPH_FIELDS | ( | ) |
Graph is "derived" from the set (this is set a of vertices) and includes another set (edges)
#define CV_GRAPH_FLAG_ORIENTED (1 << CV_SEQ_FLAG_SHIFT) |
flags for graphs
#define CV_GRAPH_FORWARD_EDGE 8 |
#define CV_GRAPH_FORWARD_EDGE_FLAG (1 << 28) |
#define CV_GRAPH_ITEM_VISITED_FLAG (1 << 30) |
flags for graph vertices and edges
#define CV_GRAPH_NEW_TREE 32 |
#define CV_GRAPH_OVER -1 |
#define CV_GRAPH_SEARCH_TREE_NODE_FLAG (1 << 29) |
#define CV_GRAPH_TREE_EDGE 2 |
#define CV_GRAPH_VERTEX 1 |
#define CV_GRAPH_VERTEX_FIELDS | ( | ) |
#define CV_HIST_ARRAY 0 |
#define CV_HIST_HAS_RANGES | ( | hist | ) | (((hist)->type & CV_HIST_RANGES_FLAG) != 0) |
#define CV_HIST_MAGIC_VAL 0x42450000 |
#define CV_HIST_RANGES_FLAG (1 << 11) |
indicates whether bin ranges are set already or not
#define CV_HIST_SPARSE 1 |
#define CV_HIST_TREE CV_HIST_SPARSE |
#define CV_HIST_UNIFORM 1 |
should be used as a parameter only, it turns to CV_HIST_UNIFORM_FLAG of hist->type
#define CV_HIST_UNIFORM_FLAG (1 << 10) |
#define CV_IABS | ( | a | ) | (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0)) |
absolute value without jumps
#define CV_IMAGE_ELEM | ( | image, | |
elemtype, | |||
row, | |||
col | |||
) | (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)]) |
get reference to pixel at (col,row), for multi-channel images (col) should be multiplied by number of channels
#define CV_IS_GRAPH | ( | seq | ) | (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_GRAPH) |
#define CV_IS_GRAPH_EDGE_VISITED | ( | edge | ) | (((CvGraphEdge*)(edge))->flags & CV_GRAPH_ITEM_VISITED_FLAG) |
#define CV_IS_GRAPH_ORIENTED | ( | seq | ) | (((seq)->flags & CV_GRAPH_FLAG_ORIENTED) != 0) |
#define CV_IS_GRAPH_VERTEX_VISITED | ( | vtx | ) | (((CvGraphVtx*)(vtx))->flags & CV_GRAPH_ITEM_VISITED_FLAG) |
#define CV_IS_HIST | ( | hist | ) |
#define CV_IS_IMAGE | ( | img | ) | (CV_IS_IMAGE_HDR(img) && ((IplImage*)img)->imageData != NULL) |
#define CV_IS_IMAGE_HDR | ( | img | ) | ((img) != NULL && ((const IplImage*)(img))->nSize == sizeof(IplImage)) |
#define CV_IS_MASK_ARR | ( | mat | ) | (((mat)->type & (CV_MAT_TYPE_MASK & ~CV_8SC1)) == 0) |
#define CV_IS_MAT | ( | mat | ) | (CV_IS_MAT_HDR(mat) && ((const CvMat*)(mat))->data.ptr != NULL) |
#define CV_IS_MATND | ( | mat | ) | (CV_IS_MATND_HDR(mat) && ((const CvMatND*)(mat))->data.ptr != NULL) |
#define CV_IS_MATND_HDR | ( | mat | ) | ((mat) != NULL && (((const CvMatND*)(mat))->type & CV_MAGIC_MASK) == CV_MATND_MAGIC_VAL) |
#define CV_IS_SEQ | ( | seq | ) | ((seq) != NULL && (((CvSeq*)(seq))->flags & CV_MAGIC_MASK) == CV_SEQ_MAGIC_VAL) |
#define CV_IS_SEQ_CHAIN | ( | seq | ) | (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && (seq)->elem_size == 1) |
#define CV_IS_SEQ_CHAIN_CONTOUR | ( | seq | ) | (CV_IS_SEQ_CHAIN( seq ) && CV_IS_SEQ_CLOSED( seq )) |
#define CV_IS_SEQ_CLOSED | ( | seq | ) | (((seq)->flags & CV_SEQ_FLAG_CLOSED) != 0) |
#define CV_IS_SEQ_CONTOUR | ( | seq | ) | (CV_IS_SEQ_CLOSED(seq) && (CV_IS_SEQ_POLYLINE(seq) || CV_IS_SEQ_CHAIN(seq))) |
#define CV_IS_SEQ_CONVEX | ( | seq | ) | 0 |
#define CV_IS_SEQ_CURVE | ( | seq | ) | (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE) |
#define CV_IS_SEQ_HOLE | ( | seq | ) | (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0) |
#define CV_IS_SEQ_INDEX | ( | seq | ) |
flag checking
#define CV_IS_SEQ_POINT_SET | ( | seq | ) | ((CV_SEQ_ELTYPE(seq) == CV_32SC2 || CV_SEQ_ELTYPE(seq) == CV_32FC2)) |
type checking macros
#define CV_IS_SEQ_POINT_SUBSET | ( | seq | ) | (CV_IS_SEQ_INDEX( seq ) || CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_PPOINT) |
#define CV_IS_SEQ_POLYGON | ( | seq | ) | (CV_IS_SEQ_POLYLINE(seq) && CV_IS_SEQ_CLOSED(seq)) |
#define CV_IS_SEQ_POLYGON_TREE | ( | seq | ) |
#define CV_IS_SEQ_POLYLINE | ( | seq | ) | (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && CV_IS_SEQ_POINT_SET(seq)) |
#define CV_IS_SEQ_SIMPLE | ( | seq | ) | 1 |
#define CV_IS_SET | ( | set | ) | ((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL) |
Checks whether the element pointed by ptr belongs to a set or not
#define CV_IS_SPARSE_HIST | ( | hist | ) | CV_IS_SPARSE_MAT((hist)->bins) |
#define CV_IS_SPARSE_MAT | ( | mat | ) | CV_IS_SPARSE_MAT_HDR(mat) |
#define CV_IS_SUBDIV2D | ( | seq | ) | (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_SUBDIV2D) |
#define CV_IS_UNIFORM_HIST | ( | hist | ) | (((hist)->type & CV_HIST_UNIFORM_FLAG) != 0) |
#define CV_KMEANS_USE_INITIAL_LABELS 1 |
The function implements the K-means algorithm for clustering an array of sample vectors in a specified number of classes
#define CV_L1 2 |
#define CV_L2 4 |
#define CV_LU 0 |
#define CV_MAGIC_MASK 0xFFFF0000 |
#define CV_MAT_ELEM | ( | mat, | |
elemtype, | |||
row, | |||
col | |||
) | (*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype))) |
#define CV_MAT_ELEM_PTR | ( | mat, | |
row, | |||
col | |||
) | CV_MAT_ELEM_PTR_FAST( mat, row, col, CV_ELEM_SIZE((mat).type) ) |
#define CV_MAT_ELEM_PTR_FAST | ( | mat, | |
row, | |||
col, | |||
pix_size | |||
) |
#define CV_MAT_MAGIC_VAL 0x42420000 |
#define CV_MATND_MAGIC_VAL 0x42430000 |
#define CV_MAX_ARR 10 |
#define CV_MINMAX 32 |
#define CV_NEXT_GRAPH_EDGE | ( | edge, | |
vertex | |||
) |
#define CV_NO_CN_CHECK 2 |
#define CV_NO_DEPTH_CHECK 1 |
#define CV_NO_SIZE_CHECK 4 |
#define CV_NORM_MASK 7 |
#define CV_NORMAL 16 |
#define CV_ORIENTED_GRAPH (CV_SEQ_KIND_GRAPH|CV_GRAPH_FLAG_ORIENTED) |
#define CV_PCA_DATA_AS_COL 1 |
#define CV_PCA_DATA_AS_ROW 0 |
#define CV_PCA_USE_AVG 2 |
#define CV_QR 4 |
#define CV_RAND_NORMAL 1 |
#define CV_RAND_UNI 0 |
#define CV_READ_CHAIN_POINT | ( | _pt, | |
reader | |||
) |
#define CV_REDUCE_AVG 1 |
#define CV_REDUCE_MAX 2 |
#define CV_REDUCE_MIN 3 |
#define CV_REDUCE_SUM 0 |
#define CV_RELATIVE 8 |
#define CV_RELATIVE_C (CV_RELATIVE | CV_C) |
#define CV_RELATIVE_L1 (CV_RELATIVE | CV_L1) |
#define CV_RELATIVE_L2 (CV_RELATIVE | CV_L2) |
#define CV_RNG_COEFF 4164903690U |
#define CV_SEQ_CHAIN (CV_SEQ_KIND_CURVE | CV_SEQ_ELTYPE_CODE) |
chain-coded curves
#define CV_SEQ_CHAIN_CONTOUR (CV_SEQ_FLAG_CLOSED | CV_SEQ_CHAIN) |
#define CV_SEQ_CONNECTED_COMP (CV_SEQ_KIND_GENERIC | CV_SEQ_ELTYPE_CONNECTED_COMP) |
sequence of the connected components
#define CV_SEQ_CONTOUR CV_SEQ_POLYGON |
#define CV_SEQ_ELTYPE | ( | seq | ) | ((seq)->flags & CV_SEQ_ELTYPE_MASK) |
#define CV_SEQ_ELTYPE_BITS 12 |
#define CV_SEQ_ELTYPE_CODE CV_8UC1 |
freeman code: 0..7
#define CV_SEQ_ELTYPE_CONNECTED_COMP 0 |
connected component
#define CV_SEQ_ELTYPE_GENERIC 0 |
#define CV_SEQ_ELTYPE_GRAPH_EDGE 0 |
&next_o, &next_d, &vtx_o, &vtx_d
#define CV_SEQ_ELTYPE_GRAPH_VERTEX 0 |
first_edge, &(x,y)
#define CV_SEQ_ELTYPE_INDEX CV_32SC1 |
#(x,y)
#define CV_SEQ_ELTYPE_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1) |
#define CV_SEQ_ELTYPE_POINT CV_32SC2 |
(x,y)
#define CV_SEQ_ELTYPE_POINT3D CV_32FC3 |
(x,y,z)
#define CV_SEQ_ELTYPE_PPOINT CV_SEQ_ELTYPE_PTR |
&(x,y)
#define CV_SEQ_ELTYPE_PTR CV_MAKE_TYPE(CV_8U, 8 /*sizeof(void*)*/) |
#define CV_SEQ_ELTYPE_TRIAN_ATR 0 |
vertex of the binary tree
#define CV_SEQ_FLAG_CLOSED (1 << CV_SEQ_FLAG_SHIFT) |
flags for curves
#define CV_SEQ_FLAG_CONVEX (0 << CV_SEQ_FLAG_SHIFT) |
#define CV_SEQ_FLAG_HOLE (2 << CV_SEQ_FLAG_SHIFT) |
#define CV_SEQ_FLAG_SHIFT (CV_SEQ_KIND_BITS + CV_SEQ_ELTYPE_BITS) |
#define CV_SEQ_FLAG_SIMPLE (0 << CV_SEQ_FLAG_SHIFT) |
#define CV_SEQ_INDEX (CV_SEQ_KIND_GENERIC | CV_SEQ_ELTYPE_INDEX) |
sequence of the integer numbers
#define CV_SEQ_KIND | ( | seq | ) | ((seq)->flags & CV_SEQ_KIND_MASK ) |
#define CV_SEQ_KIND_BIN_TREE (2 << CV_SEQ_ELTYPE_BITS) |
#define CV_SEQ_KIND_BITS 2 |
#define CV_SEQ_KIND_CURVE (1 << CV_SEQ_ELTYPE_BITS) |
#define CV_SEQ_KIND_GENERIC (0 << CV_SEQ_ELTYPE_BITS) |
types of sequences
#define CV_SEQ_KIND_GRAPH (1 << CV_SEQ_ELTYPE_BITS) |
types of sparse sequences (sets)
#define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<<CV_SEQ_ELTYPE_BITS) |
#define CV_SEQ_KIND_SUBDIV2D (2 << CV_SEQ_ELTYPE_BITS) |
#define CV_SEQ_MAGIC_VAL 0x42990000 |
#define CV_SEQ_POINT3D_SET (CV_SEQ_KIND_GENERIC| CV_SEQ_ELTYPE_POINT3D) |
#define CV_SEQ_POINT_SET (CV_SEQ_KIND_GENERIC| CV_SEQ_ELTYPE_POINT) |
point sets
#define CV_SEQ_POLYGON (CV_SEQ_FLAG_CLOSED | CV_SEQ_POLYLINE ) |
#define CV_SEQ_POLYGON_TREE (CV_SEQ_KIND_BIN_TREE | CV_SEQ_ELTYPE_TRIAN_ATR) |
binary tree for the contour
#define CV_SEQ_POLYLINE (CV_SEQ_KIND_CURVE | CV_SEQ_ELTYPE_POINT) |
#define CV_SEQ_READER_FIELDS | ( | ) |
pointer to previous element
#define CV_SEQ_SIMPLE_POLYGON (CV_SEQ_FLAG_SIMPLE | CV_SEQ_POLYGON ) |
#define CV_SEQ_WRITER_FIELDS | ( | ) |
pointer to the end of block
#define CV_SEQUENCE_FIELDS | ( | ) |
Read/Write sequence. Elements can be dynamically inserted to or deleted from the sequence. Pointer to the first sequence block.
#define CV_SET_ELEM_FIELDS | ( | elem_type | ) |
Set Order is not preserved. There can be gaps between sequence elements. After the element has been inserted it stays in the same place all the time. The MSB(most-significant or sign bit) of the first field (flags) is 0 iff the element exists.
#define CV_SET_ELEM_FREE_FLAG (1 << (sizeof(int)*8-1)) |
#define CV_SET_ELEM_IDX_MASK ((1 << 26) - 1) |
#define CV_SET_FIELDS | ( | ) |
#define CV_SET_MAGIC_VAL 0x42980000 |
#define CV_SORT_ASCENDING 0 |
#define CV_SORT_DESCENDING 16 |
#define CV_SORT_EVERY_COLUMN 1 |
#define CV_SORT_EVERY_ROW 0 |
#define CV_SPARSE_MAT_MAGIC_VAL 0x42440000 |
#define CV_STORAGE_MAGIC_VAL 0x42890000 |
#define CV_SVD 1 |
#define CV_SVD_MODIFY_A 1 |
#define CV_SVD_SYM 2 |
#define CV_SVD_U_T 2 |
#define CV_SVD_V_T 4 |
#define CV_TERMCRIT_EPS 2 |
#define CV_TERMCRIT_ITER 1 |
#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER |
#define CV_TREE_NODE_FIELDS | ( | node_type | ) |
2nd next sequence.
#define CV_TURN_ON_IPL_COMPATIBILITY | ( | ) |
#define CV_TYPE_NAME_GRAPH "opencv-graph" |
#define CV_TYPE_NAME_IMAGE "opencv-image" |
#define CV_TYPE_NAME_MAT "opencv-matrix" |
#define CV_TYPE_NAME_MATND "opencv-nd-matrix" |
#define CV_TYPE_NAME_SEQ "opencv-sequence" |
#define CV_TYPE_NAME_SEQ_TREE "opencv-sequence-tree" |
#define CV_TYPE_NAME_SPARSE_MAT "opencv-sparse-matrix" |
#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff ) |
#define CV_WHOLE_SEQ cvSlice(0, CV_WHOLE_SEQ_END_INDEX) |
#define CV_WHOLE_SEQ_END_INDEX 0x3fffffff |
#define CV_WRITE_SEQ_ELEM_VAR | ( | elem_ptr, | |
writer | |||
) |
#define cvAbs | ( | src, | |
dst | |||
) | cvAbsDiffS( (src), (dst), cvScalarAll(0)) |
#define cvAXPY | ( | A, | |
real_scalar, | |||
B, | |||
C | |||
) | cvScaleAdd(A, cvRealScalar(real_scalar), B, C) |
#define cvCheckArray cvCheckArr |
#define cvCvtScale cvConvertScale |
#define cvCvtScaleAbs cvConvertScaleAbs |
#define cvFFT cvDFT |
#define cvFree | ( | ptr | ) | (cvFree_(*(ptr)), *(ptr)=0) |
#define cvGetGraphVtx | ( | graph, | |
idx | |||
) | (CvGraphVtx*)cvGetSetElem((CvSet*)(graph), (idx)) |
Retrieves graph vertex by given index
#define cvGetSubArr cvGetSubRect |
#define cvGraphEdgeIdx | ( | graph, | |
edge | |||
) | ((edge)->flags & CV_SET_ELEM_IDX_MASK) |
Retrieves index of a graph edge given its pointer
#define cvGraphFindEdge cvFindGraphEdge |
#define cvGraphFindEdgeByPtr cvFindGraphEdgeByPtr |
#define cvGraphGetEdgeCount | ( | graph | ) | ((graph)->edges->active_count) |
#define cvGraphGetVtxCount | ( | graph | ) | ((graph)->active_count) |
#define cvGraphVtxIdx | ( | graph, | |
vtx | |||
) | ((vtx)->flags & CV_SET_ELEM_IDX_MASK) |
Retrieves index of a graph vertex given its pointer
#define cvInv cvInvert |
#define cvMahalonobis cvMahalanobis |
Matrix transform: dst = A*B + C, C is optional
#define cvMatMulAddEx cvGEMM |
#define cvMatMulAddS cvTransform |
#define cvMirror cvFlip |
#define cvScale cvConvertScale |
#define cvT cvTranspose |
#define cvZero cvSetZero |
#define IPL2CV_DEPTH | ( | depth | ) |
#define IPL_ALIGN_16BYTES 16 |
#define IPL_ALIGN_32BYTES 32 |
#define IPL_ALIGN_4BYTES 4 |
#define IPL_ALIGN_8BYTES 8 |
#define IPL_ALIGN_DWORD IPL_ALIGN_4BYTES |
#define IPL_ALIGN_QWORD IPL_ALIGN_8BYTES |
#define IPL_BORDER_CONSTANT 0 |
#define IPL_BORDER_REFLECT 2 |
#define IPL_BORDER_REFLECT_101 4 |
extra border mode
#define IPL_BORDER_REPLICATE 1 |
#define IPL_BORDER_TRANSPARENT 5 |
#define IPL_BORDER_WRAP 3 |
#define IPL_DATA_ORDER_PIXEL 0 |
#define IPL_DATA_ORDER_PLANE 1 |
#define IPL_DEPTH_16S (IPL_DEPTH_SIGN|16) |
#define IPL_DEPTH_16U 16 |
#define IPL_DEPTH_1U 1 |
#define IPL_DEPTH_32F 32 |
#define IPL_DEPTH_32S (IPL_DEPTH_SIGN|32) |
#define IPL_DEPTH_64F 64 |
for storing double-precision floating point data in IplImage's
#define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8) |
#define IPL_DEPTH_8U 8 |
#define IPL_DEPTH_SIGN 0x80000000 |
#define IPL_IMAGE_DATA 2 |
#define IPL_IMAGE_HEADER 1 |
#define IPL_IMAGE_MAGIC_VAL ((int)sizeof(IplImage)) |
#define IPL_IMAGE_ROI 4 |
#define IPL_ORIGIN_BL 1 |
#define IPL_ORIGIN_TL 0 |
#define OPENCV_ASSERT | ( | expr, | |
func, | |||
context | |||
) |
#define OPENCV_CALL | ( | Func | ) |
typedef void(CV_STDCALL* Cv_iplAllocateImageData) (IplImage *, int, int) |
typedef IplImage*(CV_STDCALL* Cv_iplCloneImage) (const IplImage *) |
typedef IplImage*(CV_STDCALL* Cv_iplCreateImageHeader) (int, int, int, char *, char *, int, int, int, int, int, IplROI *, IplImage *, void *, IplTileInfo *) |
typedef IplROI*(CV_STDCALL* Cv_iplCreateROI) (int, int, int, int, int) |
typedef void(CV_STDCALL* Cv_iplDeallocate) (IplImage *, int) |
typedef void CvArr |
This is the "metatype" used only as a function parameter.
It denotes that the function accepts arrays of multiple types, such as IplImage*, CvMat* or even CvSeq* sometimes. The particular array type is determined at runtime by analyzing the first 4 bytes of the header. In C++ interface the role of CvArr is played by InputArray and OutputArray.
a < b ? -1 : a > b ? 1 : 0
typedef int(CV_CDECL * CvErrorCallback) (int status, const char *func_name, const char *err_msg, const char *file_name, int line, void *userdata) |
typedef struct CvGraphEdge CvGraphEdge |
typedef struct CvGraphScanner CvGraphScanner |
typedef struct CvGraphVtx CvGraphVtx |
typedef struct CvGraphVtx2D CvGraphVtx2D |
typedef struct CvHistogram CvHistogram |
typedef int CvHistType |
typedef struct CvLineIterator CvLineIterator |
Line iterator state:
Matrix elements are stored row by row. Element (i, j) (i - 0-based row index, j - 0-based column index) of a matrix can be retrieved or modified using CV_MAT_ELEM macro:
uchar pixval = CV_MAT_ELEM(grayimg, uchar, i, j) CV_MAT_ELEM(cameraMatrix, float, 0, 2) = image.width*0.5f;
To access multiple-channel matrices, you can use CV_MAT_ELEM(matrix, type, i, j*nchannels + channel_idx).
typedef struct CvMemBlock CvMemBlock |
typedef struct CvMemStorage CvMemStorage |
typedef struct CvMemStoragePos CvMemStoragePos |
typedef struct CvNArrayIterator CvNArrayIterator |
matrix iterator: used for n-ary operations on dense arrays
typedef struct CvPoint2D32f CvPoint2D32f |
typedef struct CvPoint2D64f CvPoint2D64f |
typedef CvContour CvPoint2DSeq |
typedef struct CvPoint3D32f CvPoint3D32f |
typedef struct CvPoint3D64f CvPoint3D64f |
typedef struct CvSeqBlock CvSeqBlock |
typedef struct CvSeqReader CvSeqReader |
typedef struct CvSeqWriter CvSeqWriter |
typedef struct CvSize2D32f CvSize2D32f |
typedef struct CvSparseMat CvSparseMat |
typedef struct CvSparseMatIterator CvSparseMatIterator |
typedef struct CvSparseNode CvSparseNode |
typedef int CVStatus |
typedef struct CvTermCriteria CvTermCriteria |
typedef struct CvTreeNodeIterator CvTreeNodeIterator |
typedef struct _IplConvKernel IplConvKernel |
typedef struct _IplConvKernelFP IplConvKernelFP |
The IplImage is taken from the Intel Image Processing Library, in which the format is native. OpenCV only supports a subset of possible IplImage formats, as outlined in the parameter list above.
In addition to the above restrictions, OpenCV handles ROIs differently. OpenCV functions require that the image size or ROI size of all source and destination images match exactly. On the other hand, the Intel Image Processing Library processes the area of intersection between the source and destination images (or ROIs), allowing them to vary independently.
typedef struct _IplTileInfo IplTileInfo |
anonymous enum |
Enumerator | |
---|---|
CV_StsOk | everything is ok |
CV_StsBackTrace | pseudo error for back trace |
CV_StsError | unknown /unspecified error |
CV_StsInternal | internal error (bad state) |
CV_StsNoMem | insufficient memory |
CV_StsBadArg | function arg/param is bad |
CV_StsBadFunc | unsupported function |
CV_StsNoConv | iter. didn't converge |
CV_StsAutoTrace | tracing |
CV_HeaderIsNull | image header is NULL |
CV_BadImageSize | image size is invalid |
CV_BadOffset | offset is invalid |
CV_BadDataPtr | |
CV_BadStep | image step is wrong, this may happen for a non-continuous matrix |
CV_BadModelOrChSeq | |
CV_BadNumChannels | bad number of channels, for example, some functions accept only single channel matrices |
CV_BadNumChannel1U | |
CV_BadDepth | input image depth is not supported by the function |
CV_BadAlphaChannel | |
CV_BadOrder | number of dimensions is out of range |
CV_BadOrigin | incorrect input origin |
CV_BadAlign | incorrect input align |
CV_BadCallBack | |
CV_BadTileSize | |
CV_BadCOI | input COI is not supported |
CV_BadROISize | incorrect input roi |
CV_MaskIsTiled | |
CV_StsNullPtr | null pointer |
CV_StsVecLengthErr | incorrect vector length |
CV_StsFilterStructContentErr | incorrect filter structure content |
CV_StsKernelStructContentErr | incorrect transform kernel content |
CV_StsFilterOffsetErr | incorrect filter offset value |
CV_StsBadSize | the input/output structure size is incorrect |
CV_StsDivByZero | division by zero |
CV_StsInplaceNotSupported | in-place operation is not supported |
CV_StsObjectNotFound | request can't be completed |
CV_StsUnmatchedFormats | formats of input/output arrays differ |
CV_StsBadFlag | flag is wrong or not supported |
CV_StsBadPoint | bad CvPoint |
CV_StsBadMask | bad format of mask (neither 8uC1 nor 8sC1) |
CV_StsUnmatchedSizes | sizes of input/output structures do not match |
CV_StsUnsupportedFormat | the data format/type is not supported by the function |
CV_StsOutOfRange | some of parameters are out of range |
CV_StsParseError | invalid syntax/structure of the parsed file |
CV_StsNotImplemented | the requested function/feature is not implemented |
CV_StsBadMemBlock | an allocated block has been corrupted |
CV_StsAssert | assertion failed |
CV_GpuNotSupported | no CUDA support |
CV_GpuApiCallError | GPU API call error |
CV_OpenGlNotSupported | no OpenGL support |
CV_OpenGlApiCallError | OpenGL API call error |
CV_OpenCLApiCallError | OpenCL API call error |
CV_OpenCLDoubleNotSupported | |
CV_OpenCLInitError | OpenCL initialization error |
CV_OpenCLNoAMDBlasFft |
CvArr int dim CV_DEFAULT | ( | - | 1 | ) |
int double double double shear CV_DEFAULT | ( | 0 | ) |
CvArr CvArr CvPoint2D32f int double double const CvArr *mask int block_size int use_harris double k CV_DEFAULT | ( | 0. | ) |
CvArr double a CV_DEFAULT | ( | 1. | ) |
CvMat int maxiter CV_DEFAULT | ( | 20 | ) |
CvSize int int int origin int align CV_DEFAULT | ( | 4 | ) |
int int int void* data int step CV_DEFAULT | ( | CV_AUTOSTEP | ) |
CvGraphVtx* vtx int mask CV_DEFAULT | ( | CV_GRAPH_ALL_ITEMS | ) |
CvArr int dim int op CV_DEFAULT | ( | CV_REDUCE_SUM | ) |
CvSlice slice CV_DEFAULT | ( | CV_WHOLE_SEQ | ) |
CvScalar value CV_DEFAULT | ( | cvRealScalar(1) | ) |
CvArr CvArr CvPoint2D32f int double double const CvArr *mask CV_DEFAULT | ( | NULL | ) |
CVAPI | ( | const char * | ) |
Retrieves textual description of the error given its code
CVAPI | ( | void * | ) |
Changes the shape of a multi-dimensional array without copying the data.
Makes a clone of an object.
malloc
wrapper. If there is no enough memory, the function (as well as other OpenCV functions that call cvAlloc) raises an error.
The function is an advanced version of cvReshape that can work with multi-dimensional arrays as well (though it can work with ordinary images and matrices) and change the number of dimensions.
Below are the two samples from the cvReshape description rewritten using cvReshapeMatND:
In C, the header file for this function includes a convenient macro cvReshapeND that does away with the sizeof_header parameter. So, the lines containing the call to cvReshapeMatND in the examples may be replaced as follow:
arr | Input array |
sizeof_header | Size of output header to distinguish between IplImage, CvMat and CvMatND output headers |
header | Output header to be filled |
new_cn | New number of channels. new_cn = 0 means that the number of channels remains unchanged. |
new_dims | New number of dimensions. new_dims = 0 means that the number of dimensions remains the same. |
new_sizes | Array of new dimension sizes. Only new_dims-1 values are used, because the total number of elements must remain the same. Thus, if new_dims = 1, new_sizes array is not used. |
Fills matrix with given range of numbers
Allocates continuous buffer of the specified size in the storage
Copies sequence content to a continuous piece of memory
The function finds the type of a given object and calls clone with the passed object. Of course, if you know the object type, for example, struct_ptr is CvMat*, it is faster to call the specific function, like cvCloneMat.
struct_ptr | The object to clone |
CVAPI | ( | CvErrorCallback | ) |
Assigns a new error-handling function
CVAPI | ( | CvGraph * | ) |
Creates new graph
Creates a copy of graph
CVAPI | ( | CvGraphEdge * | ) | const |
Find edge connecting two vertices
CVAPI | ( | CvGraphScanner * | ) |
Creates new graph scanner.
CVAPI | ( | CvMat * | ) |
Creates a matrix header but does not allocate the matrix data.
Computes perspective transform matrix for mapping src[i] to dst[i] (i=0,1,2,3)
Computes rotation_matrix matrix.
Changes shape of matrix/image without copying data.
Returns matrix header for arbitrary array.
Returns one of array diagonals.
Returns one of more array columns.
Returns array row or row span.
Returns matrix header corresponding to the rectangular sub-array of input image or matrix.
Creates a matrix header and allocates the matrix data.
Initializes a pre-allocated matrix header.
The function allocates a new matrix header and returns a pointer to it. The matrix data can then be allocated using cvCreateData or set explicitly to user-allocated data via cvSetData.
rows | Number of rows in the matrix |
cols | Number of columns in the matrix |
type | Type of the matrix elements, see cvCreateMat |
This function is often used to process raw data with OpenCV matrix functions. For example, the following code computes the matrix product of two matrices, stored as ordinary arrays:
mat | A pointer to the matrix header to be initialized |
rows | Number of rows in the matrix |
cols | Number of columns in the matrix |
type | Type of the matrix elements, see cvCreateMat . |
data | Optional: data pointer assigned to the matrix header |
step | Optional: full row width in bytes of the assigned data. By default, the minimal possible step is used which assumes there are no gaps between subsequent rows of the matrix. |
The function call is equivalent to the following code:
rows | Number of rows in the matrix |
cols | Number of columns in the matrix |
type | The type of the matrix elements in the form CV_<bit depth><S|U|F>C<number of channels> , where S=signed, U=unsigned, F=float. For example, CV _ 8UC1 means the elements are 8-bit unsigned and the there is 1 channel, and CV _ 32SC2 means the elements are 32-bit signed and there are 2 channels. |
Creates an exact copy of the input matrix (except, may be, step value)
The function returns header, corresponding to a specified rectangle of the input array. In other
words, it allows the user to treat a rectangular part of input array as a stand-alone array. ROI is taken into account by the function so the sub-array of ROI is actually extracted.
arr | Input array |
submat | Pointer to the resultant sub-array header |
rect | Zero-based coordinates of the rectangle of interest |
The function returns the header, corresponding to a specified row/row span of the input array. cvGetRow(arr, submat, row) is a shortcut for cvGetRows(arr, submat, row, row+1).
arr | Input array |
submat | Pointer to the resulting sub-array header |
start_row | Zero-based index of the starting row (inclusive) of the span |
end_row | Zero-based index of the ending row (exclusive) of the span |
delta_row | Index step in the row span. That is, the function extracts every delta_row -th row from start_row and up to (but not including) end_row . |
The function returns the header, corresponding to a specified column span of the input array. That
is, no data is copied. Therefore, any modifications of the submatrix will affect the original array. If you need to copy the columns, use cvCloneMat. cvGetCol(arr, submat, col) is a shortcut for cvGetCols(arr, submat, col, col+1).
arr | Input array |
submat | Pointer to the resulting sub-array header |
start_col | Zero-based index of the starting column (inclusive) of the span |
end_col | Zero-based index of the ending column (exclusive) of the span |
The function returns the header, corresponding to a specified diagonal of the input array.
arr | Input array |
submat | Pointer to the resulting sub-array header |
diag | Index of the array diagonal. Zero value corresponds to the main diagonal, -1 corresponds to the diagonal above the main, 1 corresponds to the diagonal below the main, and so forth. |
The function returns a matrix header for the input array that can be a matrix - CvMat, an image - IplImage, or a multi-dimensional dense array - CvMatND (the third option is allowed only if allowND != 0) . In the case of matrix the function simply returns the input pointer. In the case of IplImage* or CvMatND it initializes the header structure with parameters of the current image ROI and returns &header. Because COI is not supported by CvMat, it is returned separately.
The function provides an easy way to handle both types of arrays - IplImage and CvMat using the same code. Input array must have non-zero data pointer, otherwise the function will report an error.
arr | Input array |
header | Pointer to CvMat structure used as a temporary buffer |
coi | Optional output parameter for storing COI |
allowND | If non-zero, the function accepts multi-dimensional dense arrays (CvMatND*) and returns 2D matrix (if CvMatND has two dimensions) or 1D matrix (when CvMatND has 1 dimension or more than 2 dimensions). The CvMatND array must be continuous. |
The function initializes the CvMat header so that it points to the same data as the original array but has a different shape - different number of channels, different number of rows, or both.
The following example code creates one image buffer and two image headers, the first is for a 320x240x3 image and the second is for a 960x240x1 image:
And the next example converts a 3x3 matrix to a single 1x9 vector:
arr | Input array |
header | Output header to be filled |
new_cn | New number of channels. 'new_cn = 0' means that the number of channels remains unchanged. |
new_rows | New number of rows. 'new_rows = 0' means that the number of rows remains unchanged unless it needs to be changed according to new_cn value. |
CVAPI | ( | CvMatND * | ) |
Creates a new matrix header but does not allocate the matrix data.
Initializes a pre-allocated multi-dimensional array header.
Creates the header and allocates the data for a multi-dimensional dense array.
The function allocates a header for a multi-dimensional dense array. The array data can further be allocated using cvCreateData or set explicitly to user-allocated data via cvSetData.
dims | Number of array dimensions |
sizes | Array of dimension sizes |
type | Type of array elements, see cvCreateMat |
This function call is equivalent to the following code:
dims | Number of array dimensions. This must not exceed CV_MAX_DIM (32 by default, but can be changed at build time). |
sizes | Array of dimension sizes. |
type | Type of array elements, see cvCreateMat . |
mat | A pointer to the array header to be initialized |
dims | The number of array dimensions |
sizes | An array of dimension sizes |
type | Type of array elements, see cvCreateMat |
data | Optional data pointer assigned to the matrix header |
Creates a copy of CvMatND (except, may be, steps)
CVAPI | ( | CvMemStorage * | ) |
Creates new memory storage. block_size == 0 means that default, somewhat optimal size, is used (currently, it is 64K)
Creates a memory storage that will borrow memory blocks from parent storage
CVAPI | ( | CvRect | ) | const |
Returns the image ROI.
Finds minimum rectangle containing two given rectangles.
If there is no ROI set, cvRect(0,0,image->width,image->height) is returned.
image | A pointer to the image header |
CVAPI | ( | CvScalar | ) | const |
Return a specific array element.
The functions return a specific array element. In the case of a sparse array the functions return 0 if the requested node does not exist (no new node is created by the functions).
arr | Input array |
idx0 | The first zero-based component of the element index |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array |
idx | Array of the element indices |
Calculates trace of the matrix (sum of elements on the main diagonal)
Finds sum of array elements
Calculates mean value of array elements
CVAPI | ( | CvSeq * | ) |
Releases contour scanner and returns pointer to the first outer contour.
Finds circles in the image.
Finds lines on binary image using one of several methods.
Initializes sequence header for a matrix (column or row vector) of points.
Finds convexity defects for the contour.
Calculates exact convex hull of 2d point set.
Approximates a single polygonal curve (contour) or a tree of polygonal curves (contours)
Approximates Freeman chain(s) with a polygonal curve.
Allocates string in memory storage Creates new empty sequence that will reside in the specified storage
Closes sequence writer, updates sequence header and returns pointer to the resultant sequence (which may be useful if the sequence was created using cvStartWriteSeq))
Creates sequence header for array. After that all the operations on sequences that do not alter the content can be applied to the resultant sequence
Extracts sequence slice (with or without copying sequence elements)
Gathers pointers to all the sequences, accessible from the first
, to the single sequence
This is a standalone contour approximation routine, not represented in the new interface. When cvFindContours retrieves contours as Freeman chains, it calls the function to get approximated contours, represented as polygons.
src_seq | Pointer to the approximated Freeman chain that can refer to other chains. |
storage | Storage location for the resulting polylines. |
method | Approximation method (see the description of the function :ocvFindContours ). |
parameter | Method parameter (not used now). |
minimal_perimeter | Approximates only those contours whose perimeters are not less than minimal_perimeter . Other chains are removed from the resulting structure. |
recursive | Recursion flag. If it is non-zero, the function approximates all chains that can be obtained from chain by using the h_next or v_next links. Otherwise, the single input chain is approximated. |
a wrapper for cvMakeSeqHeaderForArray (it does not initialize bounding rectangle!!!)
line_storage is either memory storage or 1 x max number of lines CvMat, its number of columns is changed by the function. method is one of CV_HOUGH_*; rho, theta and threshold are used for each of those methods; param1 ~ line length, param2 ~ line gap - for probabilistic, param1 ~ srn, param2 ~ stn - for multi-scale
CVAPI | ( | CvSet * | ) |
Creates a new set
CVAPI | ( | CvSize | ) | const |
Returns size of matrix or image ROI.
The function returns number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In the case of image the size of ROI is returned.
arr | array header |
CVAPI | ( | CvSparseMat * | ) |
Creates sparse array.
The function allocates a multi-dimensional sparse array. Initially the array contain no elements, that is PtrND and other related functions will return 0 for every index.
dims | Number of array dimensions. In contrast to the dense matrix, the number of dimensions is practically unlimited (up to ). |
sizes | Array of dimension sizes |
type | Type of array elements. The same as for CvMat |
Creates a copy of CvSparseMat (except, may be, zero items)
CVAPI | ( | CvSparseNode * | ) | const |
Initializes sparse array elements iterator.
The function initializes iterator of sparse array elements and returns pointer to the first element, or NULL if the array is empty.
mat | Input array |
mat_iterator | Initialized iterator |
CVAPI | ( | CvTermCriteria | ) |
checks termination criteria validity and sets eps to default_eps (if it is not set), max_iter to default_max_iters (if it is not set)
CVAPI | ( | double | ) | const |
Return a specific element of single-channel 1D, 2D, 3D or nD array.
Applies fixed-level threshold to grayscale image.
Checks whether the point is inside polygon, outside, on an edge (at a vertex).
Compares two contours by matching their moments.
Calculates area of a contour or contour segment.
Calculates perimeter of a contour or length of a part of contour.
Retrieve normalized central moments.
Retrieve central moments.
Calculates the dot product of two arrays in Euclidean metrics.
Returns a specific element of a single-channel array. If the array has multiple channels, a runtime error is raised. Note that Get?D functions can be used safely for both single-channel and multiple-channel arrays though they are a bit slower.
In the case of a sparse array the functions return 0 if the requested node does not exist (no new node is created by the functions).
arr | Input array. Must have a single channel. |
idx0 | The first zero-based component of the element index |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array. Must have a single channel. |
idx | Array of the element indices |
The function calculates and returns the Euclidean dot product of two arrays.
In the case of multiple channel arrays, the results for all channels are accumulated. In particular, cvDotProduct(a,a) where a is a complex vector, will return . The function can process multi-dimensional arrays, row by row, layer by layer, and so on.
src1 | The first source array |
src2 | The second source array |
Inverts matrix
Calculates determinant of input matrix
Calculates Mahalanobis(weighted) distance
Finds norm, difference norm or relative difference norm for an array (or two arrays)
Returns positive, negative or zero value, correspondingly. Optionally, measures a signed distance between the point and the nearest polygon edge (measure_dist=1)
Compares two histogram
This is a basic operation applied before retrieving contours
CVAPI | ( | float | ) |
Fast arctangent calculation
Fast cubic root calculation
CVAPI | ( | int | ) | const |
Returns the index of the channel of interest.
Returns the polygon points which make up the given ellipse.
Initializes line iterator.
Clips the line segment connecting *pt1 and *pt2 by the rectangular window.
Checks whether the contour is convex or not (returns 1 if convex, 0 if not)
Finds minimum enclosing circle for a set of points.
Retrieves outer and optionally inner boundaries of white (non-zero) connected components in the black (zero) background.
Returns array size along the specified dimension.
Return number of array dimensions.
Returns type of array elements.
Returns the channel of interest of in an IplImage. Returned values correspond to the coi in cvSetImageCOI.
image | A pointer to the image header |
initializes iterator that traverses through several arrays simultaneously (the function together with cvNextArraySlice is used for N-ari element-wise operations)
returns zero value if iteration is finished, non-zero (slice length) otherwise
The function returns type of the array elements. In the case of IplImage the type is converted to CvMat-like representation. For example, if the image has been created as:
The code cvGetElemType(img) will return CV_8UC3.
arr | Input array |
The function returns the array dimensionality and the array of dimension sizes. In the case of IplImage or CvMat it always returns 2 regardless of number of image/matrix rows. For example, the following code calculates total number of array elements:
arr | Input array |
sizes | Optional output vector of the array dimension sizes. For 2d arrays the number of rows (height) goes first, number of columns (width) next. |
arr | Input array |
index | Zero-based dimension index (for matrices 0 means number of rows, 1 means number of columns; for images 0 means height, 1 means width) |
Checks array values for NaNs, Infs or simply for too large numbers (if CV_CHECK_RANGE is set). If CV_CHECK_QUIET is set, no runtime errors is raised (function returns zero value in case of "bad" values). Otherwise cvError is called
Finds real roots of a cubic equation
Solves linear system (src1)*(dst) = (src2) (returns 0 if src1 is a singular and CV_LU method is used)
Calculates number of non-zero pixels
Finds optimal DFT vector size >= size0
Calculates length of sequence slice (with support of negative indices).
Calculates index of the specified sequence element. Returns -1 if element does not belong to the sequence
Returns current sequence reader position (currently observed sequence element)
Splits sequence into one or more equivalence classes using the specified criteria
Adds new element to the set and returns pointer to it
Adds new vertex to the graph
Removes vertex from the graph together with all incident edges
Link two vertices specified by indices or pointers if they are not connected or return pointer to already existing edge connecting the vertices. Functions return 1 if a new edge was created, 0 otherwise
Count number of edges incident to the vertex
Get next graph element
Loads optimized functions from IPP, MKL etc. or switches back to pure C code
retrieve/set the number of threads used in OpenMP implementations
get index of the thread being executed
Get current OpenCV error status
Retrieves current error processing mode
Sets error processing mode, returns previously used mode
Retrieves detailed information about the last error occurred
Maps IPP error codes to the counterparts from OpenCV
Output nothing
Output to console(fprintf(stderr,...))
Output to MessageBox(WIN32)
(0<=x<img_size.width, 0<=y<img_size.height).
Initially, line_iterator->ptr will point to pt1 (or pt2, see left_to_right description) location in the image. Returns the number of pixels on the line between the ending points.
The ellipse is define by the box of size 'axes' rotated 'angle' around the 'center'. A partial sweep of the ellipse arc can be done by specifying arc_start and arc_end to be something other than 0 and 360, respectively. The input array 'pts' must be large enough to hold the result. The total number of points stored into 'pts' is returned by this function.
CVAPI | ( | int64 | ) |
helper functions for RNG initialization and accurate time measurement: uses internal clock counter on x86
CVAPI | ( | IplImage * | ) |
Creates an image header but does not allocate the image data.
Returns image header for arbitrary array.
Creates an image header and allocates the image data.
Initializes an image header that was previously allocated.
size | Image width and height |
depth | Image depth (see cvCreateImage ) |
channels | Number of channels (see cvCreateImage ) |
The returned IplImage* points to the initialized header.
image | Image header to initialize |
size | Image width and height |
depth | Image depth (see cvCreateImage ) |
channels | Number of channels (see cvCreateImage ) |
origin | Top-left IPL_ORIGIN_TL or bottom-left IPL_ORIGIN_BL |
align | Alignment for image rows, typically 4 or 8 bytes |
This function call is equivalent to the following code:
size | Image width and height |
depth | Bit depth of image elements. See IplImage for valid depths. |
channels | Number of channels per pixel. See IplImage for details. This function only creates images with interleaved channels. |
Creates a copy of IPL image (widthStep may differ)
The function returns the image header for the input array that can be a matrix (CvMat) or image (IplImage). In the case of an image the function simply returns the input pointer. In the case of CvMat it initializes an image_header structure with the parameters of the input matrix. Note that if we transform IplImage to CvMat using cvGetMat and then transform CvMat back to IplImage using this function, we will get different headers if the ROI is set in the original image.
arr | Input array |
image_header | Pointer to IplImage structure used as a temporary buffer |
CVAPI | ( | schar * | ) |
Adds new element to the end of sequence. Returns pointer to the element
Adds new element to the beginning of sequence. Returns pointer to it
Inserts a new element in the middle of sequence. cvSeqInsert(seq,0,elem) == cvSeqPushFront(seq,elem)
Retrieves pointer to specified sequence element. Negative indices are supported and mean counting from the end (e.g -1 means the last sequence element)
Finds element in a [sorted] sequence
CVAPI | ( | uchar * | ) | const |
Return pointer to a particular array element.
The functions return a pointer to a specific array element. Number of array dimension should match to the number of indices passed to the function except for cvPtr1D function that can be used for sequential access to 1D, 2D or nD dense arrays.
The functions can be used for sparse arrays as well - if the requested node does not exist they create it and set it to zero.
All these as well as other functions accessing array elements ( cvGetND , cvGetRealND , cvSet , cvSetND , cvSetRealND ) raise an error in case if the element index is out of range.
arr | Input array |
idx0 | The first zero-based component of the element index |
type | Optional output parameter: type of matrix elements |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array |
idx | Array of the element indices |
type | Optional output parameter: type of matrix elements |
create_node | Optional input parameter for sparse matrices. Non-zero value of the parameter means that the requested element is created if it does not exist already. |
precalc_hashval | Optional input parameter for sparse matrices. If the pointer is not NULL, the function does not recalculate the node hash value, but takes it from the specified location. It is useful for speeding up pair-wise operations (TODO: provide an example) |
CVAPI | ( | void | ) |
Deallocates an image header.
Draws contour outlines or filled interiors on the image.
Calculates bounding box of text stroke (useful for alignment)
Renders text stroke with specified font and color at specified location. CvFont should be initialized with cvInitFont.
Initializes font structure (OpenCV 1.x API).
Draws one or more polygonal curves.
Fills an area bounded by one or more arbitrary polygons.
Fills convex or monotonous polygon.
Draws ellipse outline, filled ellipse, elliptic arc or filled elliptic sector.
Draws a circle with specified center and radius.
Draws a rectangle specified by a CvRect structure.
Draws a rectangle given two opposite corners of the rectangle (pt1 & pt2)
Draws 4-connected, 8-connected or antialiased line segment connecting two points.
Fits a line into set of 2d or 3d points in a robust way (M-estimator technique)
Finds a sparse set of points within the selected region that seem to be easy to track.
Adjust corner position using some sort of gradient search.
Harris corner detector:
Calculates minimal eigenvalue for 2x2 gradient covariation matrix at every image pixel.
Calculates eigen values and vectors of 2x2 gradient covariation matrix at every image pixel.
Calculates constraint image for corner detection.
Runs canny edge detector.
Fills the connected component until the color difference gets large enough.
Applies adaptive threshold to grayscale image.
Applies distance transform to binary image.
equalizes histogram of 8-bit single-channel image
Divides one histogram by another.
Locates a template within an image by using a histogram comparison.
Calculates back project.
Calculates array histogram.
Calculates bayesian probabilistic histograms (each or src and dst is an array of number histograms.
Copies a histogram.
Thresholds the histogram.
Normalizes the histogram.
Finds the minimum and maximum histogram bins.
Clears the histogram.
Releases the histogram.
Sets the bounds of the histogram bins.
Finds coordinates of the box vertices.
Initializes Freeman chain reader.
Substitutes the last retrieved contour with the new one.
Measures similarity between template and overlapped windows in the source image and fills the resultant image with the measurements.
Retrieves quadrangle from the input array.
Retrieves the rectangular image region with specified center from the input array.
Calculates 7 Hu's invariants from precalculated spatial and central moments.
Calculates all spatial and central moments up to the 3rd order.
Performs complex morphological transformation.
dilates input image (applies maximum filter) one or more times.
erodes input image (applies minimum filter) one or more times. If element pointer is NULL, 3x3 rectangular element is used
releases structuring element
Performs forward or inverse log-polar image transform.
Converts mapx & mapy from floating-point to integer formats for cvRemap.
Performs generic geometric transformation using the specified coordinate maps.
Warps image with perspective (projective) transform.
Warps image with affine transform.
Resizes image (input array is resized to fit the destination array)
Converts input array pixels from one color space to another.
Calculates the image Laplacian: (d2/dx + d2/dy)I.
Calculates an image derivative using generalized Sobel.
Segments image using seed "markers".
Filters image using meanshift algorithm.
Releases pyramid.
Up-samples image and smoothes the result with gaussian kernel.
Smoothes the input image with gaussian kernel and then down-samples it.
Finds integral image: SUM(X,Y) = sum(x<X,y<Y)I(x,y)
Convolves an image with the kernel.
Smooths the image in one of several ways.
Adds image to accumulator with weights: acc = acc*(1-alpha) + image*alpha.
Adds a product of two images to accumulator.
Adds squared image to accumulator.
Releases an object.
Makes OpenCV use IPL functions for allocating IplImage and IplROI structures.
Calculates the cross product of two 3D vectors.
Fills an array with random numbers and updates the RNG state.
Converts one array to another with optional linear transformation.
Clears the array.
Sets every element of an array to a given value.
Copies one array to another.
Retrieves low-level information about the array.
Assigns user data to the array header.
Releases array data.
Allocates array data.
Change a specific array element.
Change the particular array element.
Deallocates sparse array.
Deallocates a matrix.
Resets the image ROI to include the entire image and releases the ROI structure.
Sets an image Region Of Interest (ROI) for a given rectangle.
Sets the channel of interest in an IplImage.
Deallocates the image header and the image data.
free
wrapper. Here and further all the memory releasing functions (that all call cvFree) take double pointer in order to to clear pointer to the data after releasing it. Passing pointer to NULL pointer is Ok: nothing happens in this case
This call is an analogue of :
but it does not use IPL functions by default (see the CV_TURN_ON_IPL_COMPATIBILITY macro).
image | Double pointer to the image header |
This call is a shortened form of :
image | Double pointer to the image header |
If the ROI is set to NULL and the coi is not 0, the ROI is allocated. Most OpenCV functions do not* support the COI setting, so to process an individual image/matrix channel one may copy (via cvCopy or cvSplit) the channel to a separate image/matrix, process it and then copy the result back (via cvCopy or cvMerge) if needed.
image | A pointer to the image header |
coi | The channel of interest. 0 - all channels are selected, 1 - first channel is selected, etc. Note that the channel indices become 1-based. |
If the original image ROI was NULL and the rect is not the whole image, the ROI structure is allocated.
Most OpenCV functions support the use of ROI and treat the image rectangle as a separate image. For example, all of the pixel coordinates are counted from the top-left (or bottom-left) corner of the ROI, not the original image.
image | A pointer to the image header |
rect | The ROI rectangle |
This produces a similar result to the following, but in addition it releases the ROI structure. :
image | A pointer to the image header |
The function decrements the matrix data reference counter and deallocates matrix header. If the data reference counter is 0, it also deallocates the data. :
mat | Double pointer to the matrix |
low-level scalar <-> raw data conversion functions
The function releases the sparse array and clears the array pointer upon exit.
mat | Double pointer to the array |
The functions assign the new value to a particular array element. In the case of a sparse array the functions create the node if it does not exist yet.
arr | Input array |
idx0 | The first zero-based component of the element index |
value | The assigned value |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array |
idx | Array of the element indices |
value | The assigned value |
The functions assign a new value to a specific element of a single-channel array. If the array has multiple channels, a runtime error is raised. Note that the Set*D function can be used safely for both single-channel and multiple-channel arrays, though they are a bit slower.
In the case of a sparse array the functions create the node if it does not yet exist.
arr | Input array |
idx0 | The first zero-based component of the element index |
value | The assigned value |
clears element of ND dense array, in case of sparse arrays it deletes the specified node
Repeats source 2d array several times in both horizontal and vertical direction to fill destination array
The function allocates image, matrix or multi-dimensional dense array data. Note that in the case of matrix types OpenCV allocation functions are used. In the case of IplImage they are used unless CV_TURN_ON_IPL_COMPATIBILITY() has been called before. In the latter case IPL functions are used to allocate the data.
arr | Array header |
The function releases the array data. In the case of CvMat or CvMatND it simply calls cvDecRefData(), that is the function can not deallocate external data. See also the note to cvCreateData .
arr | Array header |
The function assigns user data to the array header. Header should be initialized before using cvCreateMatHeader, cvCreateImageHeader, cvCreateMatNDHeader, cvInitMatHeader, cvInitImageHeader or cvInitMatNDHeader.
arr | Array header |
data | User data |
step | Full row length in bytes |
The function fills output variables with low-level information about the array data. All output
parameters are optional, so some of the pointers may be set to NULL. If the array is IplImage with ROI set, the parameters of ROI are returned.
The following example shows how to get access to array elements. It computes absolute values of the array elements :
arr | Array header |
data | Output pointer to the whole image origin or ROI origin if ROI is set |
step | Output full row length in bytes |
roi_size | Output ROI size |
The function copies selected elements from an input array to an output array:
If any of the passed arrays is of IplImage type, then its ROI and COI fields are used. Both arrays must have the same type, the same number of dimensions, and the same size. The function can also copy sparse arrays (mask is not supported in this case).
src | The source array |
dst | The destination array |
mask | Operation mask, 8-bit single channel array; specifies elements of the destination array to be changed |
The function copies the scalar value to every selected element of the destination array:
If array arr is of IplImage type, then is ROI used, but COI must not be set.
arr | The destination array |
value | Fill value |
mask | Operation mask, 8-bit single channel array; specifies elements of the destination array to be changed |
The function clears the array. In the case of dense arrays (CvMat, CvMatND or IplImage), cvZero(array) is equivalent to cvSet(array,cvScalarAll(0),0). In the case of sparse arrays all the elements are removed.
arr | Array to be cleared |
Splits a multi-channel array into the set of single-channel arrays or extracts particular [color] plane
Merges a set of single-channel arrays into the single multi-channel array or inserts one particular [color] plane to the array
Copies several channels from input arrays to certain channels of output arrays
The function has several different purposes, and thus has several different names. It copies one array to another with optional scaling, which is performed first, and/or optional type conversion, performed after:
All the channels of multi-channel arrays are processed independently.
The type of conversion is done with rounding and saturation, that is if the result of scaling + conversion can not be represented exactly by a value of the destination array element type, it is set to the nearest representable value on the real axis.
src | Source array |
dst | Destination array |
scale | Scale factor |
shift | Value added to the scaled source array elements |
Performs linear transformation on every source array element, stores absolute value of the result: dst(x,y,c) = abs(scale*src(x,y,c)+shift). destination array must have 8u type. In other cases one may use cvConvertScale + cvAbsDiffS
dst(mask) = src1(mask) + src2(mask)
dst(mask) = src(mask) + value
dst(mask) = src1(mask) - src2(mask)
dst(mask) = value - src(mask)
dst(idx) = src1(idx) * src2(idx) * scale (scaled element-wise multiplication of 2 arrays)
element-wise division/inversion with scaling: dst(idx) = src1(idx) * scale / src2(idx) or dst(idx) = scale / src2(idx) if src1 == 0
dst = src1 * scale + src2
dst = src1 * alpha + src2 * beta + gamma
dst(idx) = src1(idx) & src2(idx)
dst(idx) = src(idx) & value
dst(idx) = src1(idx) | src2(idx)
dst(idx) = src(idx) | value
dst(idx) = src1(idx) ^ src2(idx)
dst(idx) = src(idx) ^ value
dst(idx) = ~src(idx)
dst(idx) = lower(idx) <= src(idx) < upper(idx)
dst(idx) = lower <= src(idx) < upper
The comparison operation support single-channel arrays only. Destination image should be 8uC1 or 8sC1 dst(idx) = src1(idx) cmp_op src2(idx)
dst(idx) = src1(idx) cmp_op value
dst(idx) = min(src1(idx),src2(idx))
dst(idx) = max(src1(idx),src2(idx))
dst(idx) = min(src(idx),value)
dst(idx) = max(src(idx),value)
dst(x,y,c) = abs(src1(x,y,c) - src2(x,y,c))
dst(x,y,c) = abs(src(x,y,c) - value(c))
Does cartesian->polar coordinates conversion. Either of output components (magnitude or angle) is optional
Does polar->cartesian coordinates conversion. Either of output components (magnitude or angle) is optional. If magnitude is missing it is assumed to be all 1's
Does powering: dst(idx) = src(idx)^power
Does exponention: dst(idx) = exp(src(idx)). Overflow is not handled yet. Underflow is handled. Maximal relative error is ~7e-6 for single-precision input
Calculates natural logarithms: dst(idx) = log(abs(src(idx))). Logarithm of 0 gives large negative number(~-700) Maximal relative error is ~3e-7 for single-precision output
The function fills the destination array with uniformly or normally distributed random numbers.
rng | CvRNG state initialized by cvRNG |
arr | The destination array |
dist_type | Distribution type
|
param1 | The first parameter of the distribution. In the case of a uniform distribution it is the inclusive lower boundary of the random numbers range. In the case of a normal distribution it is the mean value of the random numbers. |
param2 | The second parameter of the distribution. In the case of a uniform distribution it is the exclusive upper boundary of the random numbers range. In the case of a normal distribution it is the standard deviation of the random numbers. |
Finds all real and complex roots of a polynomial equation
The function calculates the cross product of two 3D vectors:
or:
src1 | The first source vector |
src2 | The second source vector |
dst | The destination vector |
Extended matrix transform: dst = alpha*op(A)*op(B) + beta*op(C), where op(X) is X or X^T
Transforms each element of source array and stores resultant vectors in destination array
Does perspective transform on every element of input array
Calculates (A-delta)*(A-delta)^T (order=0) or (A-delta)^T*(A-delta) (order=1)
Transposes matrix. Square matrices can be transposed in-place
Completes the symmetric matrix from the lower (LtoR=0) or from the upper (LtoR!=0) part
Mirror array data around horizontal (flip=0), vertical (flip=1) or both(flip=-1) axises: cvFlip(src) flips images vertically and sequences horizontally (inplace)
Performs Singular Value Decomposition of a matrix
Performs Singular Value Back Substitution (solves A*X = B): flags must be the same as in cvSVD
Finds eigen values and vectors of a symmetric matrix
Calculates covariation matrix for a set of vectors
Calculates mean and standard deviation of pixel values
Finds global minimum, maximum and their positions
Discrete Fourier Transform: complex->complex, real->ccs (forward), ccs->real (inverse)
Multiply results of DFTs: DFT(X)*DFT(Y) or DFT(X)*conj(DFT(Y))
Discrete Cosine Transform
Releases memory storage. All the children of a parent must be released before the parent. A child storage returns all the blocks to parent when it is released
Clears memory storage. This is the only way(!!!) (besides cvRestoreMemStoragePos) to reuse memory allocated for the storage - cvClearSeq,cvClearSet ... do not free any memory. A child storage returns all the blocks to the parent when it is cleared
Remember a storage "free memory" position
Restore a storage "free memory" position
Changes default size (granularity) of sequence blocks. The default size is ~1Kbyte
Removes the last element from sequence and optionally saves it
Removes the first element from sequence and optioanally saves it
Adds several new elements to the end of sequence
Removes several elements from the end of sequence and optionally saves them
Removes specified sequence element
Removes all the elements from the sequence. The freed memory can be reused later only by the same sequence unless cvClearMemStorage or cvRestoreMemStoragePos is called
Initializes sequence writer. The new elements will be added to the end of sequence
Combination of cvCreateSeq and cvStartAppendToSeq
Updates sequence header. May be useful to get access to some of previously written elements via cvGetSeqElem or sequence reader
Initializes sequence reader. The sequence can be read in forward or backward direction
Changes sequence reader position. It may seek to an absolute or to relative to the current position
Removes sequence slice
Inserts a sequence or array into another sequence
Sorts sequence in-place given element comparison function
Reverses order of sequence elements in-place
Removes element from the set by its index
Removes all the elements from the set
Remove edge connecting two vertices
Remove all vertices and edges from the graph
Releases graph scanner.
Does look-up transformation. Elements of the source array (that should be 8uC1 or 8sC1) are used as indexes in lutarr 256-element table
Inserts sequence into tree with specified "parent" sequence. If parent is equal to frame (e.g. the most external contour), then added contour will have null pointer to parent.
Removes contour from tree (together with the contour children).
Normally, the function is not called directly. Instead, a simple macro CV_TURN_ON_IPL_COMPATIBILITY() is used that calls cvSetIPLAllocators and passes there pointers to IPL allocation functions. :
create_header | pointer to a function, creating IPL image header. |
allocate_data | pointer to a function, allocating IPL image data. |
deallocate | pointer to a function, deallocating IPL image. |
create_roi | pointer to a function, creating IPL image ROI (i.e. Region of Interest). |
clone_image | pointer to a function, cloning an IPL image. |
The function finds the type of a given object and calls release with the double pointer.
struct_ptr | Double pointer to the object |
Sets error status silently
Sets error status and performs some additional actions (displaying message box, writing message to stderr, terminating application etc.) depending on the current error mode
Copies source 2D array inside of the larger destination array and makes a border of the specified type (IPL_BORDER_*) around the copied area.
src | The source image |
dst | The destination image |
smoothtype | Type of the smoothing, see SmoothMethod_c |
size1 | The first parameter of the smoothing operation, the aperture width. Must be a positive odd number (1, 3, 5, ...) |
size2 | The second parameter of the smoothing operation, the aperture height. Ignored by CV_MEDIAN and CV_BILATERAL methods. In the case of simple scaled/non-scaled and Gaussian blur if size2 is zero, it is set to size1. Otherwise it must be a positive odd number. |
sigma1 | In the case of a Gaussian parameter this parameter may specify Gaussian (standard deviation). If it is zero, it is calculated from the kernel size: Using standard sigma for small kernels ( to ) gives better speed. If sigma1 is not zero, while size1 and size2 are zeros, the kernel size is calculated from the sigma (to provide accurate enough operation). |
sigma2 | additional parameter for bilateral filtering |
src | input image. |
dst | output image of the same size and the same number of channels as src. |
kernel | convolution kernel (or rather a correlation kernel), a single-channel floating point matrix; if you want to apply different kernels to different channels, split the image into separate color planes using split and process them individually. |
anchor | anchor of the kernel that indicates the relative position of a filtered point within the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor is at the kernel center. |
dst_width = floor(src_width/2)[+1], dst_height = floor(src_height/2)[+1]
dst_width = src_width*2, dst_height = src_height*2
(aperture_size = 1,3,5,7) or Scharr (aperture_size = -1) operator. Scharr can be used only for the first dx or dy derivative
Performs forward or inverse linear-polar image transform
If element pointer is NULL, 3x3 rectangular element is used
dst(x,y) <- src(x + center.x - dst_width/2, y + center.y - dst_height/2). Values of pixels with fractional coordinates are retrieved using bilinear interpolation
matrixarr = ( a11 a12 | b1 ) dst(x,y) <- src(A[x y]' + b) ( a21 a22 | b2 ) (bilinear interpolation is used to retrieve pixels with fractional coordinates)
(if the substitutor is null, the last retrieved contour is removed from the tree)
The reader is used to iteratively get coordinates of all the chain points. If the Freeman codes should be read as is, a simple sequence reader should be used
This is a standalone function for setting bin ranges in the histogram. For a more detailed description of the parameters ranges and uniform, see the :ocvCalcHist function that can initialize the ranges as well. Ranges for the histogram bins must be set before the histogram is calculated or the backproject of the histogram is calculated.
hist | Histogram. |
ranges | Array of bin ranges arrays. See :ocvCreateHist for details. |
uniform | Uniformity flag. See :ocvCreateHist for details. |
The function releases the histogram (header and the data). The pointer to the histogram is cleared by the function. If *hist pointer is already NULL, the function does nothing.
hist | Double pointer to the released histogram. |
The function sets all of the histogram bins to 0 in case of a dense histogram and removes all histogram bins in case of a sparse array.
hist | Histogram. |
The function finds the minimum and maximum histogram bins and their positions. All of output arguments are optional. Among several extremas with the same value the ones with the minimum index (in the lexicographical order) are returned. In case of several maximums or minimums, the earliest in the lexicographical order (extrema locations) is returned.
hist | Histogram. |
min_value | Pointer to the minimum value of the histogram. |
max_value | Pointer to the maximum value of the histogram. |
min_idx | Pointer to the array of coordinates for the minimum. |
max_idx | Pointer to the array of coordinates for the maximum. |
The function normalizes the histogram bins by scaling them so that the sum of the bins becomes equal to factor.
hist | Pointer to the histogram. |
factor | Normalization factor. |
The function clears histogram bins that are below the specified threshold.
hist | Pointer to the histogram. |
threshold | Threshold level. |
The function makes a copy of the histogram. If the second histogram pointer *dst is NULL, a new histogram of the same size as src is created. Otherwise, both histograms must have equal types and sizes. Then the function copies the bin values of the source histogram to the destination histogram and sets the same bin value ranges as in src.
src | Source histogram. |
dst | Pointer to the destination histogram. |
The function calculates the back projection by comparing histograms of the source image patches with the given histogram. The function is similar to matchTemplate, but instead of comparing the raster patch with all its possible positions within the search window, the function CalcBackProjectPatch compares histograms. See the algorithm diagram below:
image | Source images (though, you may pass CvMat** as well). |
dst | Destination image. |
range | |
hist | Histogram. |
method | Comparison method passed to cvCompareHist (see the function description). |
factor | Normalization factor for histograms that affects the normalization scale of the destination image. Pass 1 if not sure. |
The function calculates the object probability density from two histograms as:
hist1 | First histogram (the divisor). |
hist2 | Second histogram. |
dst_hist | Destination histogram. |
scale | Scale factor for the destination histogram. |
The two parameters for methods CV_ADAPTIVE_THRESH_MEAN_C and CV_ADAPTIVE_THRESH_GAUSSIAN_C are: neighborhood size (3, 5, 7 etc.), and a constant subtracted from mean (...,-3,-2,-1,0,1,2,3,...)
Dx^2 * Dyy + Dxx * Dy^2 - 2 * Dx * Dy * Dxy. Applying threshold to the result gives coordinates of corners
Calculates det(M) - k*(trace(M)^2), where M is 2x2 gradient covariation matrix for each pixel
if thickness<0 (e.g. thickness == CV_FILLED), the filled box is drawn
Thickness works in the same way as with cvRectangle
depending on thickness, start_angle and end_angle parameters. The resultant figure is rotated by angle. All the angles are in degrees
The function initializes the font structure that can be passed to text rendering functions.
font | Pointer to the font structure initialized by the function |
font_face | Font name identifier. See cv::HersheyFonts and corresponding old CV_* identifiers. |
hscale | Horizontal scale. If equal to 1.0f , the characters have the original width depending on the font type. If equal to 0.5f , the characters are of half the original width. |
vscale | Vertical scale. If equal to 1.0f , the characters have the original height depending on the font type. If equal to 0.5f , the characters are of half the original height. |
shear | Approximate tangent of the character slope relative to the vertical line. A zero value means a non-italic font, 1.0f means about a 45 degree slope, etc. |
thickness | Thickness of the text strokes |
line_type | Type of the strokes, see line description |
CV_INLINE CvSeq* cvCloneSeq | ( | const CvSeq * | seq, |
CvMemStorage *storage | CV_DEFAULTNULL | ||
) |
Decrements an array data reference counter.
The function decrements the data reference counter in a CvMat or CvMatND if the reference counter
pointer is not NULL. If the counter reaches zero, the data is deallocated. In the current implementation the reference counter is not NULL only if the data was allocated using the cvCreateData function. The counter will be NULL in other cases such as: external data was assigned to the header using cvSetData, header is part of a larger matrix or image, or the header was converted from an image or n-dimensional matrix header.
arr | Pointer to an array header |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array |
submat | Pointer to the resulting sub-array header |
col | Zero-based index of the selected column |
CV_INLINE CvSparseNode* cvGetNextSparseNode | ( | CvSparseMatIterator * | mat_iterator | ) |
Returns the next sparse matrix element.
The function moves iterator to the next sparse matrix element and returns pointer to it. In the current version there is no any particular order of the elements, because they are stored in the hash table. The sample below demonstrates how to iterate through the sparse matrix:
mat_iterator | Sparse array iterator |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
arr | Input array |
submat | Pointer to the resulting sub-array header |
row | Zero-based index of the selected row |
Returns a set element by index. If the element doesn't belong to the set, NULL is returned
CV_INLINE int cvIplDepth | ( | int | type | ) |
Inline constructor. No data is allocated internally!!! (Use together with cvCreateData, or use cvCreateMat instead to get a matrix with allocated data):
Returns the particular element of single-channel floating-point matrix.
The function is a fast replacement for cvGetReal2D in the case of single-channel floating-point matrices. It is faster because it is inline, it does fewer checks for array type and array element type, and it checks for the row and column ranges only in debug mode.
mat | Input matrix |
row | The zero-based index of row |
col | The zero-based index of column |
Sets a specific element of a single-channel floating-point matrix.
The function is a fast replacement for cvSetReal2D in the case of single-channel floating-point matrices. It is faster because it is inline, it does fewer checks for array type and array element type, and it checks for the row and column ranges only in debug mode.
mat | The matrix |
row | The zero-based index of row |
col | The zero-based index of column |
value | The new value of the matrix element |
CV_INLINE CvPoint2D32f cvPoint2D32f | ( | double | x, |
double | y | ||
) |
constructs CvPoint2D32f structure.
CV_INLINE CvPoint2D64f cvPoint2D64f | ( | double | x, |
double | y | ||
) |
constructs CvPoint2D64f structure.
CV_INLINE CvPoint3D32f cvPoint3D32f | ( | double | x, |
double | y, | ||
double | z | ||
) |
constructs CvPoint3D32f structure.
CV_INLINE CvPoint3D64f cvPoint3D64f | ( | double | x, |
double | y, | ||
double | z | ||
) |
constructs CvPoint3D64f structure.
CV_INLINE CvPoint cvPointFrom32f | ( | CvPoint2D32f | point | ) |
converts CvPoint2D32f to CvPoint.
CV_INLINE CvPoint2D32f cvPointTo32f | ( | CvPoint | point | ) |
converts CvPoint to CvPoint2D32f.
Returns a 32-bit unsigned integer and updates RNG.
The function returns a uniformly-distributed random 32-bit unsigned integer and updates the RNG state. It is similar to the rand() function from the C runtime library, except that OpenCV functions always generates a 32-bit random number, regardless of the platform.
rng | CvRNG state initialized by cvRNG. |
Returns a floating-point random number and updates RNG.
The function returns a uniformly-distributed random floating-point number between 0 and 1 (1 is not included).
rng | RNG state initialized by cvRNG |
Deallocates a multi-dimensional array.
The function decrements the array data reference counter and releases the array header. If the reference counter reaches 0, it also deallocates the data. :
mat | Double pointer to the array |
Initializes a random number generator state.
The function initializes a random number generator and returns the state. The pointer to the state can be then passed to the cvRandInt, cvRandReal and cvRandArr functions. In the current implementation a multiply-with-carry generator is used.
seed | 64-bit value used to initiate a random sequence |
CV_INLINE CvScalar cvScalar | ( | double | val0, |
double val1 | CV_DEFAULT0, | ||
double val2 | CV_DEFAULT0, | ||
double val3 | CV_DEFAULT0 | ||
) |
Removes set element given its pointer
CV_INLINE CvSize2D32f cvSize2D32f | ( | double | width, |
double | height | ||
) |
constructs CvSize2D32f structure.
CV_INLINE void cvSubS | ( | const CvArr * | src, |
CvScalar | value, | ||
CvArr * | dst, | ||
const CvArr *mask | CV_DEFAULTNULL | ||
) |
dst(mask) = src(mask) - value = src(mask) + (-value)
CV_INLINE CvTermCriteria cvTermCriteria | ( | int | type, |
int | max_iter, | ||
double | epsilon | ||
) |
Cv_iplAllocateImageData allocate_data |
const CvArr double alpha |
CvSize int angle |
CvArr* arr |
CvArr const CvArr CvMatND CvNArrayIterator* array_iterator |
CvArr** arrs |
int before_index |
int int void int CvSeq CvSeqBlock* block |
int int channels |
int cluster_count |
double CvArr int cmp_op |
int coi |
int cols |
void int count |
int CvArr* cov_mat |
uchar ** data |
Cv_iplAllocateImageData Cv_iplDeallocate deallocate |
double default_eps |
double int default_max_iters |
int delta_elems |
int depth |
const char** description |
int dims |
int direction |
CvArr int dist_type |
CvArr * dst |
CvArr* dst0 |
int CvArr int dst_count |
int int int edge_size |
const void* elem |
const void CvCmpFunc int int* elem_idx |
int int elem_size |
const void* element |
int int void * elements |
double double end |
CvMat int int end_col |
int int end_idx |
CvMat int int end_row |
const CvGraphVtx const CvGraphVtx * end_vtx |
const char const char * err_msg |
CvArr* evects |
const char const char const char * file_name |
const char const char** filename |
const void* first |
CvArr int flags |
void * frame |
int const CvArr* from_arr |
int CvArr int const int* from_to |
const void CvCmpFunc func |
const char * func_name |
double const CvArr double double gamma |
CvMat * header |
int header_size |
const int * idx |
int idx0 |
int int idx1 |
int int int idx2 |
IplImage* image_header |
int index |
CvMemStorage CvSeq CvCmpFunc is_equal |
const void CvCmpFunc int is_sorted |
int CvArr * labels |
const char const char const char int line |
CvScalar lower |
CvSparseMatIterator* mat_iterator |
const void int max_level |
double double* max_val |
CvScalar * mean |
double* min_val |
CvMat int new_cn |
int CvArr int int new_dims |
int CvArr int int int* new_sizes |
CvArr int order |
int CvArr int const int int pair_count |
void* parent |
CvMemStoragePos * pos |
CvArr double power |
CvSeqReader* reader |
CvRNG* rng |
CvMat* roots |
CvMat* roots2 |
int rows |
int CvScalar* scalar |
CvScalar scale |
int int void int CvSeq * seq |
size_t size |
int sizeof_header |
int * sizes |
CvSlice slice |
const CvArr* src1 |
const CvArr * src2 |
int src_count |
double start |
CvMat int start_col |
int start_idx |
CvMat int start_row |
const CvGraphVtx * start_vtx |
void int step |
int CvMemStorage * storage |
CvMat * submat |
int CvArr CvTermCriteria termcrit |
int int void int total |
const int int type |
const CvArr* U |
const char const char const char int void * userdata |
const CvArr* vec2 |
const CvGraphVtx * vtx |
int vtx_idx |
int int vtx_size |
CvArr* W |
int int CvMemStorage CvSeqWriter * writer |
float x |