📄 cvaux.h.svn-base
字号:
CV_GRAPH_WEIGHTED_VERTEX_FIELDS()}CvGraphWeightedVtx;typedef struct CvGraphWeightedEdge{ CV_GRAPH_WEIGHTED_EDGE_FIELDS()}CvGraphWeightedEdge;typedef enum CvGraphWeightType{ CV_NOT_WEIGHTED, CV_WEIGHTED_VTX, CV_WEIGHTED_EDGE, CV_WEIGHTED_ALL} CvGraphWeightType;/*****************************************************************************************//*******************************Stereo correspondence*************************************/typedef struct CvCliqueFinder{ CvGraph* graph; int** adj_matr; int N; //graph size // stacks, counters etc/ int k; //stack size int* current_comp; int** All; int* ne; int* ce; int* fixp; //node with minimal disconnections int* nod; int* s; //for selected candidate int status; int best_score; int weighted; int weighted_edges; float best_weight; float* edge_weights; float* vertex_weights; float* cur_weight; float* cand_weight;} CvCliqueFinder;#define CLIQUE_TIME_OFF 2#define CLIQUE_FOUND 1#define CLIQUE_END 0/*CVAPI(void) cvStartFindCliques( CvGraph* graph, CvCliqueFinder* finder, int reverse, int weighted CV_DEFAULT(0), int weighted_edges CV_DEFAULT(0));CVAPI(int) cvFindNextMaximalClique( CvCliqueFinder* finder, int* clock_rest CV_DEFAULT(0) ); CVAPI(void) cvEndFindCliques( CvCliqueFinder* finder );CVAPI(void) cvBronKerbosch( CvGraph* graph );*//*F/////////////////////////////////////////////////////////////////////////////////////////// Name: cvSubgraphWeight// Purpose: finds weight of subgraph in a graph// Context:// Parameters:// graph - input graph.// subgraph - sequence of pairwise different ints. These are indices of vertices of subgraph.// weight_type - describes the way we measure weight.// one of the following:// CV_NOT_WEIGHTED - weight of a clique is simply its size// CV_WEIGHTED_VTX - weight of a clique is the sum of weights of its vertices// CV_WEIGHTED_EDGE - the same but edges// CV_WEIGHTED_ALL - the same but both edges and vertices// weight_vtx - optional vector of floats, with size = graph->total.// If weight_type is either CV_WEIGHTED_VTX or CV_WEIGHTED_ALL// weights of vertices must be provided. If weight_vtx not zero// these weights considered to be here, otherwise function assumes// that vertices of graph are inherited from CvGraphWeightedVtx.// weight_edge - optional matrix of floats, of width and height = graph->total.// If weight_type is either CV_WEIGHTED_EDGE or CV_WEIGHTED_ALL// weights of edges ought to be supplied. If weight_edge is not zero// function finds them here, otherwise function expects// edges of graph to be inherited from CvGraphWeightedEdge.// If this parameter is not zero structure of the graph is determined from matrix// rather than from CvGraphEdge's. In particular, elements corresponding to// absent edges should be zero.// Returns:// weight of subgraph.// Notes://F*//*CVAPI(float) cvSubgraphWeight( CvGraph *graph, CvSeq *subgraph, CvGraphWeightType weight_type CV_DEFAULT(CV_NOT_WEIGHTED), CvVect32f weight_vtx CV_DEFAULT(0), CvMatr32f weight_edge CV_DEFAULT(0) );*//*F/////////////////////////////////////////////////////////////////////////////////////////// Name: cvFindCliqueEx// Purpose: tries to find clique with maximum possible weight in a graph// Context:// Parameters:// graph - input graph.// storage - memory storage to be used by the result.// is_complementary - optional flag showing whether function should seek for clique// in complementary graph.// weight_type - describes our notion about weight.// one of the following:// CV_NOT_WEIGHTED - weight of a clique is simply its size// CV_WEIGHTED_VTX - weight of a clique is the sum of weights of its vertices// CV_WEIGHTED_EDGE - the same but edges// CV_WEIGHTED_ALL - the same but both edges and vertices// weight_vtx - optional vector of floats, with size = graph->total.// If weight_type is either CV_WEIGHTED_VTX or CV_WEIGHTED_ALL// weights of vertices must be provided. If weight_vtx not zero// these weights considered to be here, otherwise function assumes// that vertices of graph are inherited from CvGraphWeightedVtx.// weight_edge - optional matrix of floats, of width and height = graph->total.// If weight_type is either CV_WEIGHTED_EDGE or CV_WEIGHTED_ALL// weights of edges ought to be supplied. If weight_edge is not zero// function finds them here, otherwise function expects// edges of graph to be inherited from CvGraphWeightedEdge.// Note that in case of CV_WEIGHTED_EDGE or CV_WEIGHTED_ALL// nonzero is_complementary implies nonzero weight_edge.// start_clique - optional sequence of pairwise different ints. They are indices of// vertices that shall be present in the output clique.// subgraph_of_ban - optional sequence of (maybe equal) ints. They are indices of// vertices that shall not be present in the output clique.// clique_weight_ptr - optional output parameter. Weight of found clique stored here.// num_generations - optional number of generations in evolutionary part of algorithm,// zero forces to return first found clique.// quality - optional parameter determining degree of required quality/speed tradeoff.// Must be in the range from 0 to 9.// 0 is fast and dirty, 9 is slow but hopefully yields good clique.// Returns:// sequence of pairwise different ints.// These are indices of vertices that form found clique.// Notes:// in cases of CV_WEIGHTED_EDGE and CV_WEIGHTED_ALL weights should be nonnegative.// start_clique has a priority over subgraph_of_ban.//F*//*CVAPI(CvSeq*) cvFindCliqueEx( CvGraph *graph, CvMemStorage *storage, int is_complementary CV_DEFAULT(0), CvGraphWeightType weight_type CV_DEFAULT(CV_NOT_WEIGHTED), CvVect32f weight_vtx CV_DEFAULT(0), CvMatr32f weight_edge CV_DEFAULT(0), CvSeq *start_clique CV_DEFAULT(0), CvSeq *subgraph_of_ban CV_DEFAULT(0), float *clique_weight_ptr CV_DEFAULT(0), int num_generations CV_DEFAULT(3), int quality CV_DEFAULT(2) );*/#define CV_UNDEF_SC_PARAM 12345 //default value of parameters#define CV_IDP_BIRCHFIELD_PARAM1 25 #define CV_IDP_BIRCHFIELD_PARAM2 5#define CV_IDP_BIRCHFIELD_PARAM3 12#define CV_IDP_BIRCHFIELD_PARAM4 15#define CV_IDP_BIRCHFIELD_PARAM5 25#define CV_DISPARITY_BIRCHFIELD 0 /*F/////////////////////////////////////////////////////////////////////////////// Name: cvFindStereoCorrespondence// Purpose: find stereo correspondence on stereo-pair// Context:// Parameters:// leftImage - left image of stereo-pair (format 8uC1).// rightImage - right image of stereo-pair (format 8uC1).// mode - mode of correspondence retrieval (now CV_DISPARITY_BIRCHFIELD only)// dispImage - destination disparity image// maxDisparity - maximal disparity // param1, param2, param3, param4, param5 - parameters of algorithm// Returns:// Notes:// Images must be rectified.// All images must have format 8uC1.//F*/CVAPI(void) cvFindStereoCorrespondence( const CvArr* leftImage, const CvArr* rightImage, int mode, CvArr* dispImage, int maxDisparity, double param1 CV_DEFAULT(CV_UNDEF_SC_PARAM), double param2 CV_DEFAULT(CV_UNDEF_SC_PARAM), double param3 CV_DEFAULT(CV_UNDEF_SC_PARAM), double param4 CV_DEFAULT(CV_UNDEF_SC_PARAM), double param5 CV_DEFAULT(CV_UNDEF_SC_PARAM) );/*****************************************************************************************//************ Epiline functions *******************/typedef struct CvStereoLineCoeff{ double Xcoef; double XcoefA; double XcoefB; double XcoefAB; double Ycoef; double YcoefA; double YcoefB; double YcoefAB; double Zcoef; double ZcoefA; double ZcoefB; double ZcoefAB;}CvStereoLineCoeff;typedef struct CvCamera{ float imgSize[2]; /* size of the camera view, used during calibration */ float matrix[9]; /* intinsic camera parameters: [ fx 0 cx; 0 fy cy; 0 0 1 ] */ float distortion[4]; /* distortion coefficients - two coefficients for radial distortion and another two for tangential: [ k1 k2 p1 p2 ] */ float rotMatr[9]; float transVect[3]; /* rotation matrix and transition vector relatively to some reference point in the space. */}CvCamera;typedef struct CvStereoCamera{ CvCamera* camera[2]; /* two individual camera parameters */ float fundMatr[9]; /* fundamental matrix */ /* New part for stereo */ CvPoint3D32f epipole[2]; CvPoint2D32f quad[2][4]; /* coordinates of destination quadrangle after epipolar geometry rectification */ double coeffs[2][3][3];/* coefficients for transformation */ CvPoint2D32f border[2][4]; CvSize warpSize; CvStereoLineCoeff* lineCoeffs; int needSwapCameras;/* flag set to 1 if need to swap cameras for good reconstruction */ float rotMatrix[9]; float transVector[3];}CvStereoCamera;typedef struct CvContourOrientation{ float egvals[2]; float egvects[4]; float max, min; // minimum and maximum projections int imax, imin;} CvContourOrientation;#define CV_CAMERA_TO_WARP 1#define CV_WARP_TO_CAMERA 2#ifndef _TMS320C6XCVAPI(int) icvConvertWarpCoordinates(double coeffs[3][3], CvPoint2D32f* cameraPoint, CvPoint2D32f* warpPoint, int direction);CVAPI(int) icvGetSymPoint3D( CvPoint3D64d pointCorner, CvPoint3D64d point1, CvPoint3D64d point2, CvPoint3D64d *pointSym2);CVAPI(void) icvGetPieceLength3D(CvPoint3D64d point1,CvPoint3D64d point2,double* dist);CVAPI(int) icvCompute3DPoint( double alpha,double betta, CvStereoLineCoeff* coeffs, CvPoint3D64d* point);CVAPI(int) icvCreateConvertMatrVect( CvMatr64d rotMatr1,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -