未完待续。。。。。
class SubDiv2D{
// 两种构造函数
Subdiv2D();// 第一种无参的构造函数
/* *param[in] rect 空的Delaunay細分割的参数。例如,针对整个图片的场合,cv::Rect(0,0,width,height) */ Subdiv2D(Rect rect);
//初始化 void initDelaunay(Rect rect);
//往Delaunay三角形里面追加点
int insert(Point2f pt); void insert(const vector<Point2f>& ptvec);
//返回指定点所属三角形相关信息 /* *param[in] pt 指定点 *param[out] edge 指定点所属三角形最初的边ID *param[out] vertex 指定点所属三角形最初的頂点ID */ int locate(Point2f pt, int& edge, int& vertex);
// 找到与指定点最近的细分割的顶点。 /* *param[in] pt 指定点 *param[out] nearestPt 最近的细分割的顶点 */ int findNearest(Point2f pt, Point2f* nearestPt=0); //找到Delaunay边的集合 /* \param[out] edgeList 边情报的集合。(始点的x座標和y座標、終点的x座標和y座標) */ void getEdgeList(vector<Vec4f>& edgeList) const;
// 找到Delaunay三角形的顶点 /* \param[out] traiangleList 三角形顶点的集合。(3个点的x座標和y座標) */ void getTriangleList(vector<Vec6f>& triangleList) const; // 找到Voronoi区域 /* \param[in] idx Voronoi区域的ID \param[out] facetList 包围Voronoi区域的顶点 \param[out] facetCenters Voronoi区域的母点 */ void getVoronoiFacetList(const vector<int>& idx, vector<vector<Point2f> >& facetList, vector<Point2f>& facetCenters);//!取得顶点 /*! \param[in] vertex 顶点ID \param[out] firstEdge 与顶点最接近的边的ID \return 顶点的座標 */ Point2f getVertex(int vertex, int* firstEdge=0) const; //! 找到指定边关联的一条边 /*! \param[in] edge 边的ID \param[in] nextEdgeType 指定要取到的边和指定边有怎样关系。 \return 关联边的ID */ int getEdge( int edge, int nextEdgeType ) const;int nextEdge(int edge) const; int rotateEdge(int edge, int rotate) const; int symEdge(int edge) const; //找到指定边的开始点/* \param[in] edge 指定边的ID \param[in] orgpt 开始点坐标。 \return 取到的场合,返回>0的整数 */ int edgeOrg(int edge, Point2f* orgpt=0) const; //找到指定边的终点 /*! \param[in] edge 指定边的ID \param[in] dstpt 终点坐标。 \return 取到的场合,返回>0的整数 */ int edgeDst(int edge, Point2f* dstpt=0) const; }