#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) |
| 返回所有沃罗诺伊面元的列表。
|
|
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 对象> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D 对象> |
◆ Subdiv2D() [2/2]
cv::Subdiv2D::Subdiv2D |
( |
Rect |
rect | ) |
|
Python |
---|
| cv.Subdiv2D( | | ) -> | <Subdiv2D 对象> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D 对象> |
这是一个简化成员函数,提供方便。它只与其接受的参数不同。
- 参数
-
该函数创建一个空的 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个数字的向量提供,其中每2个数字是一个边的顶点。即 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个数字的向量提供,其中每2个数字是一个三角形顶点。即 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。 |
- 返回
- vertex (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 |
返回所有沃罗诺伊面元的列表。
- 参数
-
idx | 要考虑的顶点ID向量。对于所有顶点,您可以通过空向量传递。 |
facetList | 输出向量包含Voronoi面。 |
facetCenters | 输出向量包含Voronoi面的中心点。 |
◆ 初始化Delaunay()
void cv::Subdiv2D::initDelaunay |
( |
Rect |
rect | ) |
|
Python |
---|
| cv.Subdiv2D.initDelaunay( | rect | ) -> | None |
◆ 插入() [1/2]
void cv::Subdiv2D::insert |
( |
const std::vector\Point2f> & |
ptvec | ) |
|
Python |
---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | None |
将多个点插入到Delaunay三角剖分中。
- 参数
-
此函数将点的向量插入到细分中,并相应地修改细分拓扑。
◆ 插入() [2/2]
int cv::Subdiv2D::insert |
( |
Point2f |
pt | ) |
|
Python |
---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | None |
将单个点插入到Delaunay三角剖分中。
- 参数
-
此函数将单个点插入到细分中,并相应地修改细分拓扑。如果已存在具有相同坐标的点,则不会添加新点。
- 返回
- 点的ID。
- 注意
- 如果点位于指定的三角剖分矩形之外,将引发运行时错误。
◆ isRightOf()
int cv::Subdiv2D::isRightOf |
( |
Point2f |
pt, |
|
|
int |
edge |
|
) |
| const |
|
受保护的 |
◆ 定位()
int cv::Subdiv2D::locate |
( |
Point2f |
pt, |
|
|
int & |
edge, |
|
|
int & |
vertex |
|
) |
| |
Python |
---|
| cv.Subdiv2D.locate( | pt | ) -> | retval, edge, vertex |
返回点在Delaunay三角剖分中的位置。
- 参数
-
pt | 要定位的点。 |
edge | 输出点所属的边或位于其右侧的边。 |
vertex | 可选输出顶点,如果输入点与该顶点重合。 |
该函数在细分中定位输入点,并给出一个三角形边或顶点。
- 返回
- 一个整数,指定以下五种位置情况之一点位置
- 点落在某个面片内。此函数返回
PTLOC_INSIDE
,且edge将包含面片的边之一。
- 点落在边上。此函数返回
PTLOC_ON_EDGE
,且edge将包含此边。
- 点与细分的一个顶点重合。此函数返回
PTLOC_VERTEX
,且vertex将包含顶点的指针。
- 点位于细分参考矩形外部。此函数返回
PTLOC_OUTSIDE_RECT
,不会填充任何指针。
- 一个输入参数无效。将引发运行时错误,或者如果选择静默或“父”错误处理模式,则返回
PTLOC_ERROR
。
◆ 创建新边()
int cv::Subdiv2D::newEdge |
( |
| ) |
|
|
受保护的 |
◆ 创建新点()
int cv::Subdiv2D::newPoint |
( |
Point2f |
pt, |
|
|
bool |
isvirtual, |
|
|
int |
firstEdge = 0 |
|
) |
| |
|
受保护的 |
◆ 下一个边()
int cv::Subdiv2D::nextEdge |
( |
int |
edge | ) |
const |
Python |
---|
| cv.Subdiv2D.nextEdge( | edge | ) -> | retval |
返回以边缘为起点的下一边缘。
- 参数
-
- 返回
- 一个整数,表示围绕边起点的下一个边的ID:上图中的 eOnext,其中 e 是输入边)。
◆ 旋转边()
int cv::Subdiv2D::rotateEdge |
( |
int |
edge, |
|
|
int |
rotate |
|
) |
| const |
Python |
---|
| cv.Subdiv2D.rotateEdge( | edge, rotate | ) -> | retval |
返回同一四边形的另一个边缘。
- 参数
-
edge | 分划边 ID。 |
旋转 | 指定返回与输入quad-edge相同的边的参数。以下值是可能的
- 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 |
|
受保护的 |
本类的文档是由以下文件生成的