#include <opencv2/imgproc.hpp>
|
| 枚举 | {
PTLOC_ERROR = -2
,
PTLOC_OUTSIDE_RECT = -1
,
PTLOC_INSIDE = 0
,
PTLOC_VERTEX = 1
,
PTLOC_ON_EDGE = 2
} |
| |
| 枚举 | {
NEXT_AROUND_ORG = 0x00 ,
NEXT_AROUND_DST = 0x22 ,
PREV_AROUND_ORG = 0x11 ,
PREV_AROUND_DST = 0x33 ,
NEXT_AROUND_LEFT = 0x13 ,
NEXT_AROUND_RIGHT = 0x31 ,
PREV_AROUND_LEFT = 0x20 ,
PREV_AROUND_RIGHT = 0x02
} |
| |
|
| | Subdiv2D () |
| |
| | Subdiv2D (Rect rect) |
| |
| int | edgeDst (int edge, Point2f *dstpt=0) const |
| | 返回边的目标。
|
| |
| int | edgeOrg (int edge, Point2f *orgpt=0) const |
| | 返回边的起点。
|
| |
| int | findNearest (Point2f pt, Point2f *nearestPt=0) |
| | 查找最接近给定点的细分顶点。
|
| |
| int | getEdge (int edge, int nextEdgeType) const |
| | 返回与给定边相关的边之一。
|
| |
| void | getEdgeList (std::vector< Vec4f > &edgeList) const |
| | 返回所有边的列表。
|
| |
| void | getLeadingEdgeList (std::vector< int > &leadingEdgeList) const |
| | 返回连接到每个三角形的引导边ID列表。
|
| |
| void | getTriangleList (std::vector< Vec6f > &triangleList) const |
| | 返回所有三角形的列表。
|
| |
| Point2f | getVertex (int vertex, int *firstEdge=0) const |
| | 从顶点 ID 返回顶点位置。
|
| |
| void | getVoronoiFacetList (const std::vector< int > &idx, std::vector< std::vector< Point2f > > &facetList, std::vector< Point2f > &facetCenters) |
| | 返回所有 Voronoi 面片的列表。
|
| |
| void | initDelaunay (Rect rect) |
| | 创建一个新的空Delaunay细分。
|
| |
| void | insert (const std::vector< Point2f > &ptvec) |
| | 将多个点插入到 Delaunay 三角剖分中。
|
| |
| int | insert (Point2f pt) |
| | 将单个点插入到 Delaunay 三角剖分中。
|
| |
| int | locate (Point2f pt, int &edge, int &vertex) |
| | 返回 Delaunay 三角剖分中点的位置。
|
| |
| int | nextEdge (int edge) const |
| | 返回边起点周围的下一条边。
|
| |
| int | rotateEdge (int edge, int rotate) const |
| | 返回同一四边形的另一条边。
|
| |
| int | symEdge (int edge) const |
| |
◆ 匿名枚举
Subdiv2D 点定位情况
| 枚举器 |
|---|
| PTLOC_ERROR | 点定位错误。
|
| PTLOC_OUTSIDE_RECT | 点在细分边界矩形之外。
|
| PTLOC_INSIDE | 点在某个面片内部。
|
| PTLOC_VERTEX | 点与细分的一个顶点重合。
|
| PTLOC_ON_EDGE | 点在某条边上。
|
◆ 匿名枚举
Subdiv2D 边类型导航 (参见: getEdge())
| 枚举器 |
|---|
| NEXT_AROUND_ORG | |
| NEXT_AROUND_DST | |
| PREV_AROUND_ORG | |
| PREV_AROUND_DST | |
| NEXT_AROUND_LEFT | |
| NEXT_AROUND_RIGHT | |
| PREV_AROUND_LEFT | |
| PREV_AROUND_RIGHT | |
◆ Subdiv2D() [1/2]
| cv::Subdiv2D::Subdiv2D |
( |
| ) |
|
| Python |
|---|
| cv.Subdiv2D( | | ) -> | <Subdiv2D object> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D object> |
◆ Subdiv2D() [2/2]
| cv::Subdiv2D::Subdiv2D |
( |
Rect | rect | ) |
|
| Python |
|---|
| cv.Subdiv2D( | | ) -> | <Subdiv2D object> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D object> |
这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于它接受的参数。
- 参数
-
此函数创建一个空的Delaunay细分,可以使用 insert() 函数添加二维点。所有要添加的点都必须在指定矩形内,否则会引发运行时错误。
◆ calcVoronoi()
| void cv::Subdiv2D::calcVoronoi |
( |
| ) |
|
|
保护 |
◆ checkSubdiv()
| void cv::Subdiv2D::checkSubdiv |
( |
| ) |
const |
|
保护 |
◆ clearVoronoi()
| void cv::Subdiv2D::clearVoronoi |
( |
| ) |
|
|
保护 |
◆ connectEdges()
| int cv::Subdiv2D::connectEdges |
( |
int | edgeA, |
|
|
int | edgeB ) |
|
保护 |
◆ deleteEdge()
| void cv::Subdiv2D::deleteEdge |
( |
int | edge | ) |
|
|
保护 |
◆ deletePoint()
| void cv::Subdiv2D::deletePoint |
( |
int | vtx | ) |
|
|
保护 |
◆ edgeDst()
| int cv::Subdiv2D::edgeDst |
( |
int | edge, |
|
|
Point2f * | dstpt = 0 ) const |
| Python |
|---|
| cv.Subdiv2D.edgeDst( | edge | ) -> | retval, dstpt |
◆ edgeOrg()
| int cv::Subdiv2D::edgeOrg |
( |
int | edge, |
|
|
Point2f * | orgpt = 0 ) const |
| Python |
|---|
| cv.Subdiv2D.edgeOrg( | edge | ) -> | retval, orgpt |
◆ findNearest()
| Python |
|---|
| cv.Subdiv2D.findNearest( | pt | ) -> | retval, nearestPt |
查找最接近给定点的细分顶点。
- 参数
-
此函数是另一个用于在细分中定位输入点的函数。它找到离输入点最近的细分顶点。尽管包含输入点的面片(使用 locate() 定位)被用作起点,但它不一定是该面片的顶点之一。
- 返回
- 顶点 ID。
◆ getEdge()
| int cv::Subdiv2D::getEdge |
( |
int | edge, |
|
|
int | nextEdgeType ) const |
| Python |
|---|
| cv.Subdiv2D.getEdge( | edge, nextEdgeType | ) -> | retval |
返回与给定边相关的边之一。
- 参数
-
| edge | 细分边ID。 |
| nextEdgeType | 指定返回相关边中的哪一个的参数。可能的值如下:
- NEXT_AROUND_ORG 围绕边原点的下一个边 (如果 e 是输入边,则下图中的 eOnext)
- NEXT_AROUND_DST 边顶点周围的下一个 (eDnext)
- PREV_AROUND_ORG 围绕边原点的上一个边 (反向的 eRnext )
- PREV_AROUND_DST 围绕边目的地的上一个边 (反向的 eLnext )
- NEXT_AROUND_LEFT 左面片周围的下一个 (eLnext)
- NEXT_AROUND_RIGHT 右面片周围的下一个 (eRnext)
- PREV_AROUND_LEFT 围绕左面片的上一个边 (反向的 eOnext )
- PREV_AROUND_RIGHT 围绕右面片的上一个边 (反向的 eDnext )
|
示例输出
- 返回
- 与输入边相关的边 ID。
◆ getEdgeList()
| void cv::Subdiv2D::getEdgeList |
( |
std::vector< Vec4f > & | edgeList | ) |
const |
| Python |
|---|
| cv.Subdiv2D.getEdgeList( | | ) -> | edgeList |
返回所有边的列表。
- 参数
-
此函数将每条边作为4个数字的向量给出,其中每两个数字代表一个边的顶点。例如,org_x = v[0], org_y = v[1], dst_x = v[2], dst_y = v[3]。
◆ getLeadingEdgeList()
| void cv::Subdiv2D::getLeadingEdgeList |
( |
std::vector< int > & | leadingEdgeList | ) |
const |
| Python |
|---|
| cv.Subdiv2D.getLeadingEdgeList( | | ) -> | leadingEdgeList |
返回连接到每个三角形的引导边ID列表。
- 参数
-
此函数为每个三角形提供一个边ID。
◆ getTriangleList()
| void cv::Subdiv2D::getTriangleList |
( |
std::vector< Vec6f > & | triangleList | ) |
const |
| Python |
|---|
| cv.Subdiv2D.getTriangleList( | | ) -> | triangleList |
返回所有三角形的列表。
- 参数
-
此函数将每个三角形作为6个数字的向量给出,其中每两个数字代表一个三角形顶点。例如,p1_x = v[0], p1_y = v[1], p2_x = v[2], p2_y = v[3], p3_x = v[4], p3_y = v[5]。
◆ getVertex()
| Point2f cv::Subdiv2D::getVertex |
( |
int | vertex, |
|
|
int * | firstEdge = 0 ) const |
| Python |
|---|
| cv.Subdiv2D.getVertex( | vertex | ) -> | retval, firstEdge |
从顶点 ID 返回顶点位置。
- 参数
-
| vertex | 顶点 ID。 |
| firstEdge (第一个边) | 可选。连接到该顶点的第一个边ID。 |
- 返回
- 顶点 (x,y)
◆ getVoronoiFacetList()
| void cv::Subdiv2D::getVoronoiFacetList |
( |
const std::vector< int > & | idx, |
|
|
std::vector< std::vector< Point2f > > & | facetList, |
|
|
std::vector< Point2f > & | facetCenters ) |
| Python |
|---|
| cv.Subdiv2D.getVoronoiFacetList( | idx | ) -> | facetList, facetCenters |
返回所有 Voronoi 面片的列表。
- 参数
-
| idx | 要考虑的顶点ID向量。对于所有顶点,可以传递空向量。 |
| facetList | Voronoi面片的输出向量。 |
| facetCenters | Voronoi面片中心点的输出向量。 |
◆ initDelaunay()
| void cv::Subdiv2D::initDelaunay |
( |
Rect | rect | ) |
|
| Python |
|---|
| cv.Subdiv2D.initDelaunay( | rect | ) -> | 无 |
◆ insert() [1/2]
| void cv::Subdiv2D::insert |
( |
const std::vector< Point2f > & | ptvec | ) |
|
| Python |
|---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | 无 |
将多个点插入到 Delaunay 三角剖分中。
- 参数
-
此函数将点向量插入细分中,并适当地修改细分拓扑。
◆ insert() [2/2]
| int cv::Subdiv2D::insert |
( |
Point2f | pt | ) |
|
| Python |
|---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | 无 |
将单个点插入到 Delaunay 三角剖分中。
- 参数
-
此函数将单个点插入细分中,并适当地修改细分拓扑。如果已存在具有相同坐标的点,则不会添加新点。
- 返回
- 点的ID。
- 注意
- 如果点位于三角剖分指定矩形之外,则会引发运行时错误。
◆ isRightOf()
| int cv::Subdiv2D::isRightOf |
( |
Point2f | pt, |
|
|
int | edge ) const |
|
保护 |
◆ locate()
| int cv::Subdiv2D::locate |
( |
Point2f | pt, |
|
|
int & | edge, |
|
|
int & | vertex ) |
| Python |
|---|
| cv.Subdiv2D.locate( | pt | ) -> | retval, edge, vertex |
返回 Delaunay 三角剖分中点的位置。
- 参数
-
| pt | 要定位的点。 |
| edge | 点所属或位于其右侧的输出边。 |
| vertex | 可选的输出顶点,输入点与其重合。 |
此函数在细分中定位输入点,并给出三角形的边或顶点之一。
- 返回
- 一个整数,指定点定位的以下五种情况之一
◆ newEdge()
| int cv::Subdiv2D::newEdge |
( |
| ) |
|
|
保护 |
◆ newPoint()
| int cv::Subdiv2D::newPoint |
( |
Point2f | pt, |
|
|
bool | isvirtual (是否虚拟), |
|
|
int | firstEdge = 0 ) |
|
保护 |
◆ nextEdge()
| int cv::Subdiv2D::nextEdge |
( |
int | edge | ) |
const |
| Python |
|---|
| cv.Subdiv2D.nextEdge( | edge | ) -> | retval |
返回边起点周围的下一条边。
- 参数
-
- 返回
- 一个整数,表示围绕边原点的下一个边ID:如果 e 是输入边,则为上图中的 eOnext)。
◆ rotateEdge()
| int cv::Subdiv2D::rotateEdge |
( |
int | edge, |
|
|
int | rotate ) const |
| Python |
|---|
| cv.Subdiv2D.rotateEdge( | edge, rotate | ) -> | retval |
返回同一四边形的另一条边。
- 参数
-
| edge | 细分边ID。 |
| rotate | 指定返回与输入边属于同一四边形边的哪个边的参数。可能的值如下:
- 0 - 输入边 (如果 e 是输入边,则下图中的 e)
- 1 - 旋转边 (eRot)
- 2 - 反转边(反转的 e(绿色))
- 3 - 反转的旋转边(反转的 eRot(绿色))
|
- 返回
- 与输入边相同的四边形的边 ID 之一。
◆ setEdgePoints()
| void cv::Subdiv2D::setEdgePoints |
( |
int | edge, |
|
|
int | orgPt, |
|
|
int | dstPt ) |
|
保护 |
◆ splice()
| void cv::Subdiv2D::splice |
( |
int | edgeA, |
|
|
int | edgeB ) |
|
保护 |
◆ swapEdges()
| void cv::Subdiv2D::swapEdges |
( |
int | edge | ) |
|
|
保护 |
◆ symEdge()
| int cv::Subdiv2D::symEdge |
( |
int | edge | ) |
const |
| Python |
|---|
| cv.Subdiv2D.symEdge( | edge | ) -> | retval |
◆ bottomRight
◆ freePoint
| int cv::Subdiv2D::freePoint |
|
保护 |
◆ freeQEdge
| int cv::Subdiv2D::freeQEdge |
|
保护 |
◆ qedges
| std::vector<QuadEdge> cv::Subdiv2D::qedges |
|
保护 |
◆ recentEdge
| int cv::Subdiv2D::recentEdge |
|
保护 |
◆ topLeft
◆ validGeometry
| bool cv::Subdiv2D::validGeometry |
|
保护 |
◆ vtx
| std::vector<Vertex> cv::Subdiv2D::vtx |
|
保护 |
此类的文档是从以下文件生成的