📄 cvaux.h.svn-base
字号:
{ int id; CvPoint2D32f p; // pgruebele: So we do not loose precision, this needs to be float} Cv3dTracker2dTrackedObject;CV_INLINE Cv3dTracker2dTrackedObject cv3dTracker2dTrackedObject(int id, CvPoint2D32f p){ Cv3dTracker2dTrackedObject r; r.id = id; r.p = p; return r;}typedef struct{ int id; CvPoint3D32f p; // location of the tracked object} Cv3dTrackerTrackedObject;CV_INLINE Cv3dTrackerTrackedObject cv3dTrackerTrackedObject(int id, CvPoint3D32f p){ Cv3dTrackerTrackedObject r; r.id = id; r.p = p; return r;}typedef struct{ CvBool valid; float mat[4][4]; /* maps camera coordinates to world coordinates */ CvPoint2D32f principal_point; /* copied from intrinsics so this structure */ /* has all the info we need */} Cv3dTrackerCameraInfo;typedef struct{ CvPoint2D32f principal_point; float focal_length[2]; float distortion[4];} Cv3dTrackerCameraIntrinsics;CVAPI(CvBool) cv3dTrackerCalibrateCameras(int num_cameras, const Cv3dTrackerCameraIntrinsics camera_intrinsics[], /* size is num_cameras */ CvSize etalon_size, float square_size, IplImage *samples[], /* size is num_cameras */ Cv3dTrackerCameraInfo camera_info[]); /* size is num_cameras */CVAPI(int) cv3dTrackerLocateObjects(int num_cameras, int num_objects, const Cv3dTrackerCameraInfo camera_info[], /* size is num_cameras */ const Cv3dTracker2dTrackedObject tracking_info[], /* size is num_objects*num_cameras */ Cv3dTrackerTrackedObject tracked_objects[]); /* size is num_objects *//**************************************************************************************** tracking_info is a rectangular array; one row per camera, num_objects elements per row. The id field of any unused slots must be -1. Ids need not be ordered or consecutive. On completion, the return value is the number of objects located; i.e., the number of objects visible by more than one camera. The id field of any unused slots in tracked objects is set to -1.****************************************************************************************//****************************************************************************************\* Skeletons and Linear-Contour Models *\****************************************************************************************/typedef enum CvLeeParameters{ CV_LEE_INT = 0, CV_LEE_FLOAT = 1, CV_LEE_DOUBLE = 2, CV_LEE_AUTO = -1, CV_LEE_ERODE = 0, CV_LEE_ZOOM = 1, CV_LEE_NON = 2} CvLeeParameters;#define CV_NEXT_VORONOISITE2D( SITE ) ((SITE)->edge[0]->site[((SITE)->edge[0]->site[0] == (SITE))])#define CV_PREV_VORONOISITE2D( SITE ) ((SITE)->edge[1]->site[((SITE)->edge[1]->site[0] == (SITE))])#define CV_FIRST_VORONOIEDGE2D( SITE ) ((SITE)->edge[0])#define CV_LAST_VORONOIEDGE2D( SITE ) ((SITE)->edge[1])#define CV_NEXT_VORONOIEDGE2D( EDGE, SITE ) ((EDGE)->next[(EDGE)->site[0] != (SITE)])#define CV_PREV_VORONOIEDGE2D( EDGE, SITE ) ((EDGE)->next[2 + ((EDGE)->site[0] != (SITE))])#define CV_VORONOIEDGE2D_BEGINNODE( EDGE, SITE ) ((EDGE)->node[((EDGE)->site[0] != (SITE))])#define CV_VORONOIEDGE2D_ENDNODE( EDGE, SITE ) ((EDGE)->node[((EDGE)->site[0] == (SITE))])#define CV_TWIN_VORONOISITE2D( SITE, EDGE ) ( (EDGE)->site[((EDGE)->site[0] == (SITE))]) #define CV_VORONOISITE2D_FIELDS() \ struct CvVoronoiNode2D *node[2]; \ struct CvVoronoiEdge2D *edge[2];typedef struct CvVoronoiSite2D{ CV_VORONOISITE2D_FIELDS() struct CvVoronoiSite2D *next[2];} CvVoronoiSite2D;#define CV_VORONOIEDGE2D_FIELDS() \ struct CvVoronoiNode2D *node[2]; \ struct CvVoronoiSite2D *site[2]; \ struct CvVoronoiEdge2D *next[4];typedef struct CvVoronoiEdge2D{ CV_VORONOIEDGE2D_FIELDS()} CvVoronoiEdge2D;#define CV_VORONOINODE2D_FIELDS() \ CV_SET_ELEM_FIELDS(CvVoronoiNode2D) \ CvPoint2D32f pt; \ float radius;typedef struct CvVoronoiNode2D{ CV_VORONOINODE2D_FIELDS()} CvVoronoiNode2D;#define CV_VORONOIDIAGRAM2D_FIELDS() \ CV_GRAPH_FIELDS() \ CvSet *sites;typedef struct CvVoronoiDiagram2D{ CV_VORONOIDIAGRAM2D_FIELDS()} CvVoronoiDiagram2D;/* Computes Voronoi Diagram for given polygons with holes */CVAPI(int) cvVoronoiDiagramFromContour(CvSeq* ContourSeq, CvVoronoiDiagram2D** VoronoiDiagram, CvMemStorage* VoronoiStorage, CvLeeParameters contour_type CV_DEFAULT(CV_LEE_INT), int contour_orientation CV_DEFAULT(-1), int attempt_number CV_DEFAULT(10));/* Computes Voronoi Diagram for domains in given image */CVAPI(int) cvVoronoiDiagramFromImage(IplImage* pImage, CvSeq** ContourSeq, CvVoronoiDiagram2D** VoronoiDiagram, CvMemStorage* VoronoiStorage, CvLeeParameters regularization_method CV_DEFAULT(CV_LEE_NON), float approx_precision CV_DEFAULT(CV_LEE_AUTO));/* Deallocates the storage */CVAPI(void) cvReleaseVoronoiStorage(CvVoronoiDiagram2D* VoronoiDiagram, CvMemStorage** pVoronoiStorage);/*********************** Linear-Contour Model ****************************/struct CvLCMEdge;struct CvLCMNode;typedef struct CvLCMEdge{ CV_GRAPH_EDGE_FIELDS() CvSeq* chain; float width; int index1; int index2;} CvLCMEdge;typedef struct CvLCMNode{ CV_GRAPH_VERTEX_FIELDS() CvContour* contour; } CvLCMNode;/* Computes hybrid model from Voronoi Diagram */CVAPI(CvGraph*) cvLinearContorModelFromVoronoiDiagram(CvVoronoiDiagram2D* VoronoiDiagram, float maxWidth);/* Releases hybrid model storage */CVAPI(int) cvReleaseLinearContorModelStorage(CvGraph** Graph);/* two stereo-related functions */CVAPI(void) cvInitPerspectiveTransform( CvSize size, const CvPoint2D32f vertex[4], double matrix[3][3], CvArr* rectMap );/*CVAPI(void) cvInitStereoRectification( CvStereoCamera* params, CvArr* rectMap1, CvArr* rectMap2, int do_undistortion );*//*************************** View Morphing Functions ************************//* The order of the function corresponds to the order they should appear in the view morphing pipeline */ /* Finds ending points of scanlines on left and right images of stereo-pair */CVAPI(void) cvMakeScanlines( const CvMatrix3* matrix, CvSize img_size, int* scanlines1, int* scanlines2, int* lengths1, int* lengths2, int* line_count );/* Grab pixel values from scanlines and stores them sequentially (some sort of perspective image transform) */CVAPI(void) cvPreWarpImage( int line_count, IplImage* img, uchar* dst, int* dst_nums, int* scanlines);/* Approximate each grabbed scanline by a sequence of runs (lossy run-length compression) */CVAPI(void) cvFindRuns( int line_count, uchar* prewarp1, uchar* prewarp2, int* line_lengths1, int* line_lengths2, int* runs1, int* runs2, int* num_runs1, int* num_runs2);/* Compares two sets of compressed scanlines */CVAPI(void) cvDynamicCorrespondMulti( int line_count, int* first, int* first_runs, int* second, int* second_runs, int* first_corr, int* second_corr);/* Finds scanline ending coordinates for some intermediate "virtual" camera position */CVAPI(void) cvMakeAlphaScanlines( int* scanlines1, int* scanlines2, int* scanlinesA, int* lengths, int line_count, float alpha);/* Blends data of the left and right image scanlines to get pixel values of "virtual" image scanlines */CVAPI(void) cvMorphEpilinesMulti( int line_count, uchar* first_pix, int* first_num, uchar* second_pix, int* second_num, uchar* dst_pix, int* dst_num, float alpha, int* first, int* first_runs, int* second, int* second_runs, int* first_corr, int* second_corr);/* Does reverse warping of the morphing result to make it fill the destination image rectangle */CVAPI(void) cvPostWarpImage( int line_count, uchar* src, int* src_nums, IplImage* img, int* scanlines);/* Deletes Moire (missed pixels that appear due to discretization) */CVAPI(void) cvDeleteMoire( IplImage* img );/****************************************************************************************\* Background/foreground segmentation *\****************************************************************************************/#define CV_BG_MODEL_FGD 0#define CV_BG_MODEL_MOG 1#define CV_BG_MODEL_FGD_SIMPLE 2struct CvBGStatModel;typedef void (CV_CDECL * CvReleaseBGStatModel)( struct CvBGStatModel** bg_model );typedef int (CV_CDECL * CvUpdateBGStatModel)( IplImage* curr_frame, struct CvBGStatModel* bg_model );#define CV_BG_STAT_MODEL_FIELDS() \ int type; /*type of BG model*/ \ CvReleaseBGStatModel release; \ CvUpdateBGStatModel update; \ IplImage* background; /*8UC3 reference background image*/ \ IplImage* foreground; /*8UC1 foreground image*/ \ IplImage** layers; /*8UC3 reference background image, can be null */ \ int layer_count; /* can be zero */ \ CvMemStorage* storage; /*storage for 揻oreground_regions
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -